| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Data.TypedEncoding.Conv.Text
Description
Text encoding combinators specific to Text
@since 0.2.2.0
Synopsis
- pack :: (UnSnoc xs ~ (,) ys y, Superset "r-UNICODE.D76" y, encs ~ RemoveRs ys, AllEncodeInto "r-UNICODE.D76" encs) => Enc xs c String -> Enc xs c Text
- unpack :: (UnSnoc xs ~ (,) ys y, Superset "r-UNICODE.D76" y, encs ~ RemoveRs ys, AllEncodeInto "r-UNICODE.D76" encs) => Enc xs c Text -> Enc xs c String
- utf8Promote :: Enc xs c Text -> Enc (Snoc xs "r-UTF8") c Text
- utf8Demote :: UnSnoc xs ~ (,) ys "r-UTF8" => Enc xs c Text -> Enc ys c Text
- d76Promote :: Enc xs c Text -> Enc (Snoc xs "r-UNICODE.D76") c Text
- d76Demote :: UnSnoc xs ~ (,) ys "r-UNICODE.D76" => Enc xs c Text -> Enc ys c Text
Documentation
>>>:set -XDataKinds -XTypeFamilies -XTypeApplications
pack :: (UnSnoc xs ~ (,) ys y, Superset "r-UNICODE.D76" y, encs ~ RemoveRs ys, AllEncodeInto "r-UNICODE.D76" encs) => Enc xs c String -> Enc xs c Text Source #
This assumes that each of the encodings in xs work work equivalently in String and Text.
See discussion in Examples.TypedEncoding.Conversions and
"Data.TypedEncoding.Conv.ByteString.Char8.pack"
unpack :: (UnSnoc xs ~ (,) ys y, Superset "r-UNICODE.D76" y, encs ~ RemoveRs ys, AllEncodeInto "r-UNICODE.D76" encs) => Enc xs c Text -> Enc xs c String Source #
This assumes that each of the encodings in xs work work equivalently in String and Text.
This is similar to the assumptions made in pack.
utf8Promote :: Enc xs c Text -> Enc (Snoc xs "r-UTF8") c Text Source #
Text is automatically "r-UTF8" encoded
Adding "r-UTF8" annotation simply adds type level interpretion requirement that Text is treated
as UTF8. The internals of Text (currently UTF-16) are not relevant and utf8Promote is implemented
as id. This is not the same as encoding Word8 layouts into Char-s.
This, in typed-encoding terminology, would be "enc-UTF8", not @"r-UTF8".
>>>displ $ utf8Promote $ toEncoding () ("text" :: T.Text)"Enc '[r-UTF8] () (Text text)"