Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- newtype Description = Description {}
- data FieldInfo codec
- = AnnField !String !(FieldInfo codec)
- | BasicField !BasicFieldInfo
- | EnumField !EnumFieldInfo
- | CompoundField !(CompoundFieldInfo codec)
- | ChoiceField !(ChoiceFieldInfo codec)
- | ListField !(ListFieldInfo codec)
- | AliasField !(AliasFieldInfo codec)
- | SumField !(SumFieldInfo codec)
- data BasicFieldInfo = BasicFieldInfo {}
- data EnumFieldInfo = EnumFieldInfo {
- enumFieldType :: !String
- enumFieldSize :: !FieldSize
- enumFieldValues :: ![(Int, String)]
- data AliasFieldInfo codec = AliasFieldInfo {
- aliasFieldName :: !String
- aliasFieldTarget :: !(FieldInfo codec)
- data CompoundFieldInfo codec = CompoundFieldInfo {
- compoundFieldType :: !String
- compoundFieldSubfields :: ![SubfieldInfo codec]
- data SumFieldInfo codec = SumFieldInfo {
- sumFieldType :: !String
- sumFieldAlternatives :: ![(String, FieldInfo codec)]
- data ListFieldInfo codec = ListFieldInfo {
- listSize :: !FieldSize
- listElemInfo :: !(FieldInfo codec)
- data SubfieldInfo codec = SubfieldInfo {
- subfieldName :: !String
- subfieldInfo :: !(FieldInfo codec)
- data ChoiceCondition
- data ChoiceFieldInfo codec = ChoiceFieldInfo {
- choiceCondition :: !ChoiceCondition
- choiceFieldAlternatives :: ![FieldInfo codec]
- annField :: String -> FieldInfo codec -> FieldInfo codec
- basicField :: String -> FieldSize -> FieldInfo codec
- enumField :: String -> FieldSize -> [(Int, String)] -> FieldInfo codec
- enumField_ :: String -> [String] -> FieldInfo codec
- aliasField :: String -> FieldInfo codec -> FieldInfo codec
- compoundField :: String -> [(String, FieldInfo codec)] -> FieldInfo codec
- choiceField :: ChoiceCondition -> [FieldInfo codec] -> FieldInfo codec
- sumField :: String -> [(String, FieldInfo codec)] -> FieldInfo codec
- listField :: FieldSize -> FieldInfo codec -> FieldInfo codec
- data FieldSize
- knownSize :: FieldSize -> Maybe Int
- data FieldSizeBinop
Documentation annotation types
newtype Description Source #
Used to add descriptions via ANN
pragmas. This is necessary because
Template Haskell cannot find Haddock comments attached to constructors inside
associated types, but it can find annotations on those same constructors.
Instances
FieldInfo
and related types
Describes the serialization format of a field.
AnnField !String !(FieldInfo codec) | Adds an annotation to a field. |
BasicField !BasicFieldInfo | A simple field, with a named type and a size. |
EnumField !EnumFieldInfo | An enum field, which reports labels and values for the possible values. |
CompoundField !(CompoundFieldInfo codec) | A field that is composed out of multiple sub-fields, encoded sequentially. |
ChoiceField !(ChoiceFieldInfo codec) | A list of alternatives, to be picked based on a given choice condition. |
ListField !(ListFieldInfo codec) | A list of values, encoded sequentially. The length must be encoded separately, and can be referenced from a length expression. |
AliasField !(AliasFieldInfo codec) | Adds an alternative name (alias) to a field type. |
SumField !(SumFieldInfo codec) | A list of named alternatives. TODO: this is probably redundant and may not actually work. |
data BasicFieldInfo Source #
Instances
Show BasicFieldInfo Source # | |
Defined in Data.SerDoc.Info showsPrec :: Int -> BasicFieldInfo -> ShowS # show :: BasicFieldInfo -> String # showList :: [BasicFieldInfo] -> ShowS # | |
Eq BasicFieldInfo Source # | |
Defined in Data.SerDoc.Info (==) :: BasicFieldInfo -> BasicFieldInfo -> Bool # (/=) :: BasicFieldInfo -> BasicFieldInfo -> Bool # |
data EnumFieldInfo Source #
EnumFieldInfo | |
|
Instances
Show EnumFieldInfo Source # | |
Defined in Data.SerDoc.Info showsPrec :: Int -> EnumFieldInfo -> ShowS # show :: EnumFieldInfo -> String # showList :: [EnumFieldInfo] -> ShowS # | |
Eq EnumFieldInfo Source # | |
Defined in Data.SerDoc.Info (==) :: EnumFieldInfo -> EnumFieldInfo -> Bool # (/=) :: EnumFieldInfo -> EnumFieldInfo -> Bool # |
data AliasFieldInfo codec Source #
AliasFieldInfo | |
|
Instances
Show (AliasFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info showsPrec :: Int -> AliasFieldInfo codec -> ShowS # show :: AliasFieldInfo codec -> String # showList :: [AliasFieldInfo codec] -> ShowS # | |
Eq (AliasFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info (==) :: AliasFieldInfo codec -> AliasFieldInfo codec -> Bool # (/=) :: AliasFieldInfo codec -> AliasFieldInfo codec -> Bool # |
data CompoundFieldInfo codec Source #
CompoundFieldInfo | |
|
Instances
Show (CompoundFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info showsPrec :: Int -> CompoundFieldInfo codec -> ShowS # show :: CompoundFieldInfo codec -> String # showList :: [CompoundFieldInfo codec] -> ShowS # | |
Eq (CompoundFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info (==) :: CompoundFieldInfo codec -> CompoundFieldInfo codec -> Bool # (/=) :: CompoundFieldInfo codec -> CompoundFieldInfo codec -> Bool # |
data SumFieldInfo codec Source #
SumFieldInfo | |
|
Instances
Show (SumFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info showsPrec :: Int -> SumFieldInfo codec -> ShowS # show :: SumFieldInfo codec -> String # showList :: [SumFieldInfo codec] -> ShowS # | |
Eq (SumFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info (==) :: SumFieldInfo codec -> SumFieldInfo codec -> Bool # (/=) :: SumFieldInfo codec -> SumFieldInfo codec -> Bool # |
data ListFieldInfo codec Source #
ListFieldInfo | |
|
Instances
Show (ListFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info showsPrec :: Int -> ListFieldInfo codec -> ShowS # show :: ListFieldInfo codec -> String # showList :: [ListFieldInfo codec] -> ShowS # | |
Eq (ListFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info (==) :: ListFieldInfo codec -> ListFieldInfo codec -> Bool # (/=) :: ListFieldInfo codec -> ListFieldInfo codec -> Bool # |
data SubfieldInfo codec Source #
SubfieldInfo | |
|
Instances
Show (SubfieldInfo codec) Source # | |
Defined in Data.SerDoc.Info showsPrec :: Int -> SubfieldInfo codec -> ShowS # show :: SubfieldInfo codec -> String # showList :: [SubfieldInfo codec] -> ShowS # | |
Eq (SubfieldInfo codec) Source # | |
Defined in Data.SerDoc.Info (==) :: SubfieldInfo codec -> SubfieldInfo codec -> Bool # (/=) :: SubfieldInfo codec -> SubfieldInfo codec -> Bool # |
data ChoiceCondition Source #
Instances
Show ChoiceCondition Source # | |
Defined in Data.SerDoc.Info showsPrec :: Int -> ChoiceCondition -> ShowS # show :: ChoiceCondition -> String # showList :: [ChoiceCondition] -> ShowS # | |
Eq ChoiceCondition Source # | |
Defined in Data.SerDoc.Info (==) :: ChoiceCondition -> ChoiceCondition -> Bool # (/=) :: ChoiceCondition -> ChoiceCondition -> Bool # |
data ChoiceFieldInfo codec Source #
ChoiceFieldInfo | |
|
Instances
Show (ChoiceFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info showsPrec :: Int -> ChoiceFieldInfo codec -> ShowS # show :: ChoiceFieldInfo codec -> String # showList :: [ChoiceFieldInfo codec] -> ShowS # | |
Eq (ChoiceFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info (==) :: ChoiceFieldInfo codec -> ChoiceFieldInfo codec -> Bool # (/=) :: ChoiceFieldInfo codec -> ChoiceFieldInfo codec -> Bool # |
choiceField :: ChoiceCondition -> [FieldInfo codec] -> FieldInfo codec Source #
Field sizes
data FieldSizeBinop Source #
Instances
Show FieldSizeBinop Source # | |
Defined in Data.SerDoc.Info showsPrec :: Int -> FieldSizeBinop -> ShowS # show :: FieldSizeBinop -> String # showList :: [FieldSizeBinop] -> ShowS # | |
Eq FieldSizeBinop Source # | |
Defined in Data.SerDoc.Info (==) :: FieldSizeBinop -> FieldSizeBinop -> Bool # (/=) :: FieldSizeBinop -> FieldSizeBinop -> Bool # |