@@ -51,8 +51,7 @@ import Control.Monad.Trans.Resource
5151import Data.Conduit hiding (Source, Sink, Conduit)
5252import Data.Data
5353
54−import Data.ByteString (ByteString, packCStringLen)
55−import qualified Data.ByteString
54+import Data.ByteString (ByteString, packCString, packCStringLen)
5655import qualified Data.ByteString.Char8 as B8
5756import qualified Data.ByteString.Internal as B
5857import qualified Data.ByteString.Unsafe as BU
@@ -70,6 +69,8 @@ data Event =
7069 | EventMappingEnd
7170 deriving (Show, Eq)
7271
72+-- | Style for scalars - e.g. quoted / folded
73+--
7374data Style = Any
7475 | Plain
7576 | SingleQuoted
@@ -79,10 +80,14 @@ data Style = Any
7980 | PlainNoTag
8081 deriving (Show, Read, Eq, Enum, Bounded, Ord, Data, Typeable)
8182
83+-- | Style for sequences - e.g. block or flow
84+--
8285-- @since 0.9.0
8386data SequenceStyle = AnySequence | BlockSequence | FlowSequence
8487 deriving (Show, Eq, Enum, Bounded, Ord, Data, Typeable)
8588
89+-- | Style for mappings - e.g. block or flow
90+--
8691-- @since 0.9.0
8792data MappingStyle = AnyMapping | BlockMapping | FlowMapping
8893 deriving (Show, Eq, Enum, Bounded, Ord, Data, Typeable)
@@ -227,9 +232,6 @@ foreign import ccall unsafe "get_scalar_length"
227232foreign import ccall unsafe "get_scalar_tag"
228233 c_get_scalar_tag :: EventRaw -> IO (Ptr CUChar)
229234
230−foreign import ccall unsafe "get_scalar_tag_len"
231− c_get_scalar_tag_len :: EventRaw -> IO CULong
232−
233235foreign import ccall unsafe "get_scalar_style"
234236 c_get_scalar_style :: EventRaw -> IO CInt
235237
@@ -245,9 +247,6 @@ foreign import ccall unsafe "get_sequence_start_style"
245247foreign import ccall unsafe "get_sequence_start_tag"
246248 c_get_sequence_start_tag :: EventRaw -> IO (Ptr CUChar)
247249
248−foreign import ccall unsafe "get_sequence_start_tag_len"
249− c_get_sequence_start_tag_len :: EventRaw -> IO CULong
250−
251250foreign import ccall unsafe "get_mapping_start_anchor"
252251 c_get_mapping_start_anchor :: EventRaw -> IO CString
253252
@@ -257,9 +256,6 @@ foreign import ccall unsafe "get_mapping_start_style"
257256foreign import ccall unsafe "get_mapping_start_tag"
258257 c_get_mapping_start_tag :: EventRaw -> IO (Ptr CUChar)
259258
260−foreign import ccall unsafe "get_mapping_start_tag_len"
261− c_get_mapping_start_tag_len :: EventRaw -> IO CULong
262−
263259foreign import ccall unsafe "get_alias_anchor"
264260 c_get_alias_anchor :: EventRaw -> IO CString
265261
@@ -275,17 +271,11 @@ readStyle getStyle er = do
275271 ystyle <- getStyle er
276272 return $ toEnum $ fromEnum ystyle
277273
278−readTag ::
279− (EventRaw -> IO (Ptr CUChar)) -> (EventRaw -> IO CULong) -> (EventRaw -> IO Tag)
280−readTag getTag getTagLen er = do
274+readTag :: (EventRaw -> IO (Ptr CUChar)) -> EventRaw -> IO Tag
275+readTag getTag er = do
281276 ytag <- getTag er
282− ytag_len <- getTagLen er
283277 let ytag' = castPtr ytag
284− let ytag_len' = fromEnum ytag_len
285− bsToTag <$>
286− if ytag_len' == 0
287− then return Data.ByteString.empty
288− else packCStringLen (ytag', ytag_len')
278+ bsToTag <$> packCString ytag'
289279
290280getEvent :: EventRaw -> IO (Maybe Event)
291281getEvent er = do
@@ -308,18 +298,18 @@ getEvent er = do
308298 let yvalue' = castPtr yvalue
309299 let ylen' = fromEnum ylen
310300 bs <- packCStringLen (yvalue', ylen')
311− tag <- readTag c_get_scalar_tag c_get_scalar_tag_len er
301+ tag <- readTag c_get_scalar_tag er
312302 style <- readStyle c_get_scalar_style er
313303 anchor <- readAnchor c_get_scalar_anchor er
314304 return $ Just $ EventScalar bs tag style anchor
315305 YamlSequenceStartEvent -> do
316− tag <- readTag c_get_sequence_start_tag c_get_sequence_start_tag_len er
306+ tag <- readTag c_get_sequence_start_tag er
317307 style <- readStyle c_get_sequence_start_style er
318308 anchor <- readAnchor c_get_sequence_start_anchor er
319309 return $ Just $ EventSequenceStart tag style anchor
320310 YamlSequenceEndEvent -> return $ Just EventSequenceEnd
321311 YamlMappingStartEvent -> do
322− tag <- readTag c_get_mapping_start_tag c_get_mapping_start_tag_len er
312+ tag <- readTag c_get_mapping_start_tag er
323313 style <- readStyle c_get_mapping_start_style er
324314 anchor <- readAnchor c_get_mapping_start_anchor er
325315 return $ Just $ EventMappingStart tag style anchor