optics-extra-0.2: Extra utilities and instances for optics-core

Safe HaskellNone
LanguageHaskell2010

Data.ByteString.Optics

Synopsis

Documentation

class IsByteString t where Source #

Traversals for ByteStrings.

Methods

packedBytes :: Iso' [Word8] t Source #

pack (or unpack) a list of bytes into a strict or lazy ByteString.

pack x ≡ x ^. packedBytes
unpack x ≡ x ^. re packedBytes
packedBytesre unpackedBytes

packedChars :: Iso' String t Source #

pack (or unpack) a list of characters into a strict or lazy ByteString.

When writing back to the ByteString it is assumed that every Char lies between '\x00' and '\xff'.

pack x ≡ x ^. packedChars
unpack x ≡ x ^. re packedChars
packedCharsre unpackedChars

bytes :: IxTraversal' Int64 t Word8 Source #

Traverse each Word8 in a strict or lazy ByteString

This Traversal walks each strict ByteString chunk in a tree-like fashion enable zippers to seek to locations more quickly and accelerate many monoidal queries, but up to associativity (and constant factors) it is equivalent to the much slower:

bytesunpackedBytes . traversed
anyOf bytes (== 0x80) :: ByteString -> Bool

chars :: IxTraversal' Int64 t Char Source #

Traverse the individual bytes in a strict or lazy ByteString as characters.

When writing back to the ByteString it is assumed that every Char lies between '\x00' and '\xff'.

This Traversal walks each strict ByteString chunk in a tree-like fashion enable zippers to seek to locations more quickly and accelerate many monoidal queries, but up to associativity (and constant factors) it is equivalent to the much slower:

charsunpackedChars . traversed
anyOf chars (== 'c') :: ByteString -> Bool

unpackedChars :: IsByteString t => Iso' t String Source #

unpack (or pack) a list of characters into a strict (or lazy) ByteString

When writing back to the ByteString it is assumed that every Char lies between '\x00' and '\xff'.

unpackedCharsre packedChars
unpack x ≡ x ^. unpackedChars
pack x ≡ x ^. re unpackedChars
unpackedChars :: Iso' ByteString String
unpackedChars :: Iso' ByteString String

pattern Bytes :: IsByteString t => [Word8] -> t Source #

pattern Chars :: IsByteString t => [Char] -> t Source #