Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- packedBytes :: Iso' [Word8] ByteString
- unpackedBytes :: Iso' ByteString [Word8]
- bytes :: IxTraversal' Int64 ByteString Word8
- packedChars :: Iso' String ByteString
- unpackedChars :: Iso' ByteString String
- chars :: IxTraversal' Int64 ByteString Char
- pattern Bytes :: [Word8] -> ByteString
- pattern Chars :: [Char] -> ByteString
Documentation
packedBytes :: Iso' [Word8] ByteString Source #
pack
(or unpack
) a list of bytes into a ByteString
packedBytes
≡re
unpackedBytes
pack
x ≡ x^.
packedBytes
unpack
x ≡ x^.
re
packedBytes
>>>
[104,101,108,108,111] ^. packedBytes
"hello"
unpackedBytes :: Iso' ByteString [Word8] Source #
unpack
(or pack
) a ByteString
into a
list of bytes.
unpackedBytes
≡re
packedBytes
unpack
x ≡ x^.
unpackedBytes
pack
x ≡ x^.
re
unpackedBytes
>>>
"hello" ^. packedChars % unpackedBytes
[104,101,108,108,111]
bytes :: IxTraversal' Int64 ByteString Word8 Source #
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.sets
map
packedChars :: Iso' String ByteString Source #
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
≡re
unpackedChars
pack
x ≡ x^.
packedChars
unpack
x ≡ x^.
re
packedChars
>>>
foldOf (packedChars % each % to (\w -> let x = showHex w "" in if Prelude.length x == 1 then '0':x else x)) "hello"
"68656c6c6f"
unpackedChars :: Iso' ByteString String Source #
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
≡re
packedChars
unpack
x ≡ x^.
unpackedChars
pack
x ≡ x^.
re
unpackedChars
>>>
[104,101,108,108,111] ^. packedBytes % unpackedChars
"hello"
chars :: IxTraversal' Int64 ByteString Char Source #
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
%
traversed
>>>
anyOf chars (== 'h') $ Char8.pack "hello"
True
pattern Bytes :: [Word8] -> ByteString Source #
pattern Chars :: [Char] -> ByteString Source #