lens-4.4.0.1: Lenses, Folds and Traversals

Portabilitynon-portable
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellTrustworthy

Data.Text.Strict.Lens

Description

 

Synopsis

Documentation

packed :: Iso' String TextSource

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 StringSource

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 BuilderSource

Convert between strict Text and Builder .

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

text :: IndexedTraversal' Int Text CharSource

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 TextSource

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

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