lens-4.2: Lenses, Folds and Traversals

Copyright(C) 2012-2014 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellTrustworthy
LanguageHaskell98

Data.Text.Strict.Lens

Description

 

Synopsis

Documentation

packed :: Iso' String Text Source

This isomorphism can be used to pack (or unpack) strict Text.

>>> "hello"^.packed -- :: Text
"hello"
pack x ≡ x '^.' packed
unpack x ≡ x '^.' from packed
packedfrom unpacked
packediso pack unpack

unpacked :: Iso' Text String Source

This isomorphism can be used to unpack (or pack) lazy Text.

>>> "hello"^.unpacked -- :: String
"hello"

This Iso is provided for notational convenience rather than out of great need, since

unpackedfrom packed
pack x ≡ x '^.' from unpacked
unpack x ≡ x '^.' packed
unpackediso unpack pack

builder :: Iso' Text Builder Source

Convert between strict Text and Builder .

fromText x ≡ x '^.' builder
toStrict (toLazyText x) ≡ x '^.' from builder

text :: IndexedTraversal' Int Text Char Source

Traverse the individual characters in strict Text.

>>> anyOf text (=='o') "hello"
True

When the type is unambiguous, you can also use the more general each.

textunpacked . traversed
texteach

Note that when just using this as a Setter, setting map can be more efficient.

utf8 :: Prism' ByteString Text Source

EncodeDecode a strict Text tofrom strict ByteString, via UTF-8.

>>> utf8 # "☃"
"\226\152\131"

_Text :: Iso' Text String Source

This is an alias for unpacked that makes it more obvious how to use it with '#'

> _Text # "hello" -- :: Text

"hello"