{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE FlexibleContexts #-}
module Data.TypedEncoding.Conv.Text.Lazy where
import qualified Data.Text.Lazy as TL
import qualified Data.TypedEncoding.Common.Util.TypeLits as Knds
import Data.TypedEncoding.Instances.Support
pack :: (
Knds.UnSnoc xs ~ '(,) ys y
, Superset "r-UNICODE.D76" y
, encs ~ RemoveRs ys
, AllEncodeInto "r-UNICODE.D76" encs
) => Enc xs c String -> Enc xs c TL.Text
pack :: Enc @[Symbol] xs c String -> Enc @[Symbol] xs c Text
pack = (String -> Text)
-> Enc @[Symbol] xs c String -> Enc @[Symbol] xs c Text
forall k s1 s2 (e :: k) c.
(s1 -> s2) -> Enc @k e c s1 -> Enc @k e c s2
unsafeChangePayload String -> Text
TL.pack
pack1 :: (
Superset "r-UNICODE.D76" y
) => Enc '[y] c String -> Enc '[y] c TL.Text
pack1 :: Enc @[Symbol] ((':) @Symbol y ('[] @Symbol)) c String
-> Enc @[Symbol] ((':) @Symbol y ('[] @Symbol)) c Text
pack1 = Enc @[Symbol] ((':) @Symbol y ('[] @Symbol)) c String
-> Enc @[Symbol] ((':) @Symbol y ('[] @Symbol)) c Text
forall (xs :: [Symbol]) (ys :: [Symbol]) (y :: Symbol)
(encs :: [Symbol]) c.
((UnSnoc @Symbol xs :: ([Symbol], Symbol))
~ ('(ys, y) :: ([Symbol], Symbol)),
Superset "r-UNICODE.D76" y,
(encs :: [Symbol]) ~ (RemoveRs ys :: [Symbol]),
AllEncodeInto "r-UNICODE.D76" encs) =>
Enc @[Symbol] xs c String -> Enc @[Symbol] xs c Text
pack
unpack :: Enc xs c TL.Text -> Enc xs c String
unpack :: Enc @k xs c Text -> Enc @k xs c String
unpack = (Text -> String) -> Enc @k xs c Text -> Enc @k xs c String
forall k s1 s2 (e :: k) c.
(s1 -> s2) -> Enc @k e c s1 -> Enc @k e c s2
unsafeChangePayload Text -> String
TL.unpack
unpack1 :: (
Superset "r-UNICODE.D76" y
) => Enc '[y] c TL.Text -> Enc '[y] c String
unpack1 :: Enc @[Symbol] ((':) @Symbol y ('[] @Symbol)) c Text
-> Enc @[Symbol] ((':) @Symbol y ('[] @Symbol)) c String
unpack1 = Enc @[Symbol] ((':) @Symbol y ('[] @Symbol)) c Text
-> Enc @[Symbol] ((':) @Symbol y ('[] @Symbol)) c String
forall k (xs :: k) c. Enc @k xs c Text -> Enc @k xs c String
unpack
utf8Promote :: Enc xs c TL.Text -> Enc (Snoc xs "r-UTF8") c TL.Text
utf8Promote :: Enc @[Symbol] xs c Text
-> Enc @[Symbol] (Snoc @Symbol xs "r-UTF8") c Text
utf8Promote = (Text -> Text)
-> Enc @[Symbol] xs c Text
-> Enc @[Symbol] (Snoc @Symbol xs "r-UTF8") c Text
forall k1 k2 s1 s2 (e1 :: k1) c (e2 :: k2).
(s1 -> s2) -> Enc @k1 e1 c s1 -> Enc @k2 e2 c s2
withUnsafeCoerce Text -> Text
forall a. a -> a
id
utf8Demote :: (UnSnoc xs ~ '(,) ys "r-UTF8") => Enc xs c TL.Text -> Enc ys c TL.Text
utf8Demote :: Enc @[Symbol] xs c Text -> Enc @[Symbol] ys c Text
utf8Demote = (Text -> Text)
-> Enc @[Symbol] xs c Text -> Enc @[Symbol] ys c Text
forall k1 k2 s1 s2 (e1 :: k1) c (e2 :: k2).
(s1 -> s2) -> Enc @k1 e1 c s1 -> Enc @k2 e2 c s2
withUnsafeCoerce Text -> Text
forall a. a -> a
id