| Safe Haskell | Safe | 
|---|---|
| Language | Haskell2010 | 
Data.TypedEncoding.Common.Types.CheckedEnc
Contents
Description
Module defines CheckedEnc - untyped ADT version of Enc
A more dependently typed approach would be to define SomeEnc GADT
 that accepts some Enc '[..] in its constructor.  The approach here
 turns out to be isomorphic to SomeEnc approach.  Both, however, yield
 somewhat different programming.  
Post v0.4 typed-encoding does not support SomeEnc and it remains only as an Example.
See Examples.TypedEncoding.SomeEnc.
This module is re-exported in Data.TypedEncoding and it is best not to import it directly.
Synopsis
- data CheckedEnc conf str = UnsafeMkCheckedEnc [EncAnn] conf str
 - unsafeCheckedEnc :: [EncAnn] -> c -> s -> CheckedEnc c s
 - getCheckedPayload :: CheckedEnc conf str -> str
 - getCheckedEncPayload :: CheckedEnc conf str -> ([EncAnn], str)
 - toCheckedEnc :: forall xs c str. SymbolList xs => Enc xs c str -> CheckedEnc c str
 - fromCheckedEnc :: forall xs c str. SymbolList xs => CheckedEnc c str -> Maybe (Enc xs c str)
 - procToCheckedEncFromCheckedEnc :: forall xs c str. (SymbolList xs, Eq c, Eq str) => CheckedEnc c str -> Bool
 - procFromCheckedEncToCheckedEnc :: forall xs c str. (SymbolList xs, Eq c, Eq str) => Enc xs c str -> Bool
 
Documentation
>>>:set -XOverloadedStrings -XMultiParamTypeClasses -XDataKinds -XAllowAmbiguousTypes>>>import qualified Data.Text as T>>>import Data.TypedEncoding.Combinators.Unsafe (unsafeSetPayload)
Untyped Enc
data CheckedEnc conf str Source #
Represents some validated encoded string.
CheckedEnc is untyped version of Enc. 
 CheckedEnc contains verified encoded data, encoding is visible
 at the value level only.
Since: 0.2.0.0
Constructors
| UnsafeMkCheckedEnc [EncAnn] conf str | Constructor renamed from previous versions This constructor is considered unsafe as pattern matching on it and using it allows access to the encoded payload. Since: 0.3.0.0  | 
Instances
| (Eq conf, Eq str) => Eq (CheckedEnc conf str) Source # | |
Defined in Data.TypedEncoding.Common.Types.CheckedEnc Methods (==) :: CheckedEnc conf str -> CheckedEnc conf str -> Bool # (/=) :: CheckedEnc conf str -> CheckedEnc conf str -> Bool #  | |
| (Show conf, Show str) => Show (CheckedEnc conf str) Source # | |
Defined in Data.TypedEncoding.Common.Types.CheckedEnc Methods showsPrec :: Int -> CheckedEnc conf str -> ShowS # show :: CheckedEnc conf str -> String # showList :: [CheckedEnc conf str] -> ShowS #  | |
| (Show c, Displ str) => Displ (CheckedEnc c str) Source # | 
  | 
Defined in Data.TypedEncoding.Common.Types.CheckedEnc Methods displ :: CheckedEnc c str -> String Source #  | |
unsafeCheckedEnc :: [EncAnn] -> c -> s -> CheckedEnc c s Source #
Since: 0.2.0.0
getCheckedPayload :: CheckedEnc conf str -> str Source #
Since: 0.2.0.0
getCheckedEncPayload :: CheckedEnc conf str -> ([EncAnn], str) Source #
Since: 0.2.0.0
toCheckedEnc :: forall xs c str. SymbolList xs => Enc xs c str -> CheckedEnc c str Source #
Since: 0.2.0.0
fromCheckedEnc :: forall xs c str. SymbolList xs => CheckedEnc c str -> Maybe (Enc xs c str) Source #
Since: 0.2.0.0
procToCheckedEncFromCheckedEnc :: forall xs c str. (SymbolList xs, Eq c, Eq str) => CheckedEnc c str -> Bool Source #
>>>let encsometest = UnsafeMkCheckedEnc ["TEST"] () $ T.pack "hello">>>procToCheckedEncFromCheckedEnc @'["TEST"] encsometestTrue>>>procToCheckedEncFromCheckedEnc @'["TEST1"] encsometestFalse
procFromCheckedEncToCheckedEnc :: forall xs c str. (SymbolList xs, Eq c, Eq str) => Enc xs c str -> Bool Source #
>>>let enctest = unsafeSetPayload () "hello" :: Enc '["TEST"] () T.Text>>>procFromCheckedEncToCheckedEnc enctestTrue