lens-4.5: Lenses, Folds and Traversals
Data.Text.Lazy.Lens
Description
Synopsis
packed :: Iso' String TextSource
This isomorphism can be used to pack (or unpack) lazy Text.
pack
unpack
Text
>>> "hello"^.packed -- :: Text "hello"
>>>
"hello"^.packed -- :: Text
pack x ≡ x ^. packed unpack x ≡ x ^. from packed packed ≡ from unpacked
^.
packed
from
unpacked
unpacked :: Iso' Text StringSource
This isomorphism can be used to unpack (or pack) lazy Text.
>>> "hello"^.unpacked -- :: String "hello"
"hello"^.unpacked -- :: String
pack x ≡ x ^. from unpacked unpack x ≡ x ^. packed
This Iso is provided for notational convenience rather than out of great need, since
Iso
unpacked ≡ from packed
_Text :: Iso' Text StringSource
This is an alias for unpacked that makes it clearer how to use it with ('#').
('#')
_Text = from packed
_Text
>>> _Text # "hello" -- :: Text "hello"
_Text # "hello" -- :: Text
text :: IndexedTraversal' Int Text CharSource
Traverse the individual characters in a Text.
>>> anyOf text (=='c') "chello" True
anyOf text (=='c') "chello"
text = unpacked . traversed
text
traversed
When the type is unambiguous, you can also use the more general each.
each
text ≡ each
Note that when just using this as a Setter, setting map can be more efficient.
Setter
setting map
setting
map
builder :: Iso' Text BuilderSource
Convert between lazy Text and Builder .
Builder
fromLazyText x ≡ x ^. builder toLazyText x ≡ x ^. from builder
fromLazyText
builder
toLazyText
utf8 :: Prism' ByteString TextSource
EncodeDecode a lazy 'Text' tofrom lazy ByteString, via UTF-8.
ByteString
Note: This function does not decode lazily, as it must consume the entire input before deciding whether or not it fails.
>>> ByteString.unpack (utf8 # "☃") [226,152,131]
ByteString.unpack (utf8 # "☃")