| Portability | non-portable |
|---|---|
| Stability | experimental |
| Maintainer | Edward Kmett <ekmett@gmail.com> |
| Safe Haskell | Safe-Inferred |
Data.ByteString.Strict.Lens
Description
Documentation
packedBytes :: Iso' [Word8] ByteStringSource
pack (or unpack) a list of bytes into a ByteString
packedBytes≡fromunpackedBytespackx ≡ x^.packedBytesunpackx ≡ x^.frompackedBytes
>>>[104,101,108,108,111]^.packedBytes"hello"
unpackedBytes :: Iso' ByteString [Word8]Source
unpack (or pack) a ByteString into a list of bytes
unpackedBytes≡frompackedBytesunpackx ≡ x^.unpackedBytespackx ≡ x^.fromunpackedBytes
>>>"hello"^.packedChars.unpackedBytes[104,101,108,108,111]
bytes :: IndexedTraversal' Int ByteString Word8Source
Traverse each Word8 in a ByteString.
This Traversal walks the ByteString in a tree-like fashion
enable zippers to seek to locations in logarithmic time and accelerating
many monoidal queries, but up to associativity (and constant factors)
it is equivalent to the much slower:
bytes≡unpackedBytes.traversed
>>>anyOf bytes (== 0x80) (Char8.pack "hello")False
Note that when just using this as a Setter,
can be more efficient.
setting map
packedChars :: Iso' String ByteStringSource
pack (or unpack) a list of characters into a ByteString
When writing back to the ByteString it is assumed that every Char
lies between '\x00' and '\xff'.
packedChars≡fromunpackedCharspackx ≡ x^.packedCharsunpackx ≡ x^.frompackedChars
>>>"hello"^.packedChars.each.re (base 16 . enum).to (\x -> if Prelude.length x == 1 then '0':x else x)"68656c6c6f"
unpackedChars :: Iso' ByteString StringSource
unpack (or pack) a list of characters into a ByteString
When writing back to the ByteString it is assumed that every Char
lies between '\x00' and '\xff'.
unpackedChars≡frompackedCharsunpackx ≡ x^.unpackedCharspackx ≡ x^.fromunpackedChars
>>>[104,101,108,108,111]^.packedBytes.unpackedChars"hello"
chars :: IndexedTraversal' Int ByteString CharSource
Traverse the individual bytes in a ByteString as characters.
When writing back to the ByteString it is assumed that every Char
lies between '\x00' and '\xff'.
This Traversal walks the ByteString in a tree-like fashion
enable zippers to seek to locations in logarithmic time and accelerating
many monoidal queries, but up to associativity (and constant factors)
it is equivalent to the much slower:
chars=unpackedChars.traverse
>>>anyOf chars (== 'h') "hello"True