Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Data.SerDoc.Info
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.
Constructors
Description | |
Fields |
Instances
FieldInfo
and related types
Describes the serialization format of a field.
Constructors
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 #
Constructors
BasicFieldInfo | |
Fields
|
Instances
Show BasicFieldInfo Source # | |
Defined in Data.SerDoc.Info Methods showsPrec :: Int -> BasicFieldInfo -> ShowS # show :: BasicFieldInfo -> String # showList :: [BasicFieldInfo] -> ShowS # | |
Eq BasicFieldInfo Source # | |
Defined in Data.SerDoc.Info Methods (==) :: BasicFieldInfo -> BasicFieldInfo -> Bool # (/=) :: BasicFieldInfo -> BasicFieldInfo -> Bool # |
data EnumFieldInfo Source #
Constructors
EnumFieldInfo | |
Fields
|
Instances
Show EnumFieldInfo Source # | |
Defined in Data.SerDoc.Info Methods showsPrec :: Int -> EnumFieldInfo -> ShowS # show :: EnumFieldInfo -> String # showList :: [EnumFieldInfo] -> ShowS # | |
Eq EnumFieldInfo Source # | |
Defined in Data.SerDoc.Info Methods (==) :: EnumFieldInfo -> EnumFieldInfo -> Bool # (/=) :: EnumFieldInfo -> EnumFieldInfo -> Bool # |
data AliasFieldInfo codec Source #
Constructors
AliasFieldInfo | |
Fields
|
Instances
Show (AliasFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods showsPrec :: Int -> AliasFieldInfo codec -> ShowS # show :: AliasFieldInfo codec -> String # showList :: [AliasFieldInfo codec] -> ShowS # | |
Eq (AliasFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods (==) :: AliasFieldInfo codec -> AliasFieldInfo codec -> Bool # (/=) :: AliasFieldInfo codec -> AliasFieldInfo codec -> Bool # |
data CompoundFieldInfo codec Source #
Constructors
CompoundFieldInfo | |
Fields
|
Instances
Show (CompoundFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods showsPrec :: Int -> CompoundFieldInfo codec -> ShowS # show :: CompoundFieldInfo codec -> String # showList :: [CompoundFieldInfo codec] -> ShowS # | |
Eq (CompoundFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods (==) :: CompoundFieldInfo codec -> CompoundFieldInfo codec -> Bool # (/=) :: CompoundFieldInfo codec -> CompoundFieldInfo codec -> Bool # |
data SumFieldInfo codec Source #
Constructors
SumFieldInfo | |
Fields
|
Instances
Show (SumFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods showsPrec :: Int -> SumFieldInfo codec -> ShowS # show :: SumFieldInfo codec -> String # showList :: [SumFieldInfo codec] -> ShowS # | |
Eq (SumFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods (==) :: SumFieldInfo codec -> SumFieldInfo codec -> Bool # (/=) :: SumFieldInfo codec -> SumFieldInfo codec -> Bool # |
data ListFieldInfo codec Source #
Constructors
ListFieldInfo | |
Fields
|
Instances
Show (ListFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods showsPrec :: Int -> ListFieldInfo codec -> ShowS # show :: ListFieldInfo codec -> String # showList :: [ListFieldInfo codec] -> ShowS # | |
Eq (ListFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods (==) :: ListFieldInfo codec -> ListFieldInfo codec -> Bool # (/=) :: ListFieldInfo codec -> ListFieldInfo codec -> Bool # |
data SubfieldInfo codec Source #
Constructors
SubfieldInfo | |
Fields
|
Instances
Show (SubfieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods showsPrec :: Int -> SubfieldInfo codec -> ShowS # show :: SubfieldInfo codec -> String # showList :: [SubfieldInfo codec] -> ShowS # | |
Eq (SubfieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods (==) :: SubfieldInfo codec -> SubfieldInfo codec -> Bool # (/=) :: SubfieldInfo codec -> SubfieldInfo codec -> Bool # |
data ChoiceCondition Source #
Constructors
IndexField !String | |
IndexFlag !String Word32 |
Instances
Show ChoiceCondition Source # | |
Defined in Data.SerDoc.Info Methods showsPrec :: Int -> ChoiceCondition -> ShowS # show :: ChoiceCondition -> String # showList :: [ChoiceCondition] -> ShowS # | |
Eq ChoiceCondition Source # | |
Defined in Data.SerDoc.Info Methods (==) :: ChoiceCondition -> ChoiceCondition -> Bool # (/=) :: ChoiceCondition -> ChoiceCondition -> Bool # |
data ChoiceFieldInfo codec Source #
Constructors
ChoiceFieldInfo | |
Fields
|
Instances
Show (ChoiceFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods showsPrec :: Int -> ChoiceFieldInfo codec -> ShowS # show :: ChoiceFieldInfo codec -> String # showList :: [ChoiceFieldInfo codec] -> ShowS # | |
Eq (ChoiceFieldInfo codec) Source # | |
Defined in Data.SerDoc.Info Methods (==) :: ChoiceFieldInfo codec -> ChoiceFieldInfo codec -> Bool # (/=) :: ChoiceFieldInfo codec -> ChoiceFieldInfo codec -> Bool # |
choiceField :: ChoiceCondition -> [FieldInfo codec] -> FieldInfo codec Source #
Field sizes
Constructors
FixedSize !Int | Exactly this size |
EnumSize | The default enum size for the codec |
VarSize !String | Size given by a named variable from the context |
BinopSize !FieldSizeBinop !FieldSize !FieldSize | Binary operation |
RangeSize !FieldSize !FieldSize | Min/max range |
UnknownSize | Size is entirely unknown |
data FieldSizeBinop Source #
Instances
Show FieldSizeBinop Source # | |
Defined in Data.SerDoc.Info Methods showsPrec :: Int -> FieldSizeBinop -> ShowS # show :: FieldSizeBinop -> String # showList :: [FieldSizeBinop] -> ShowS # | |
Eq FieldSizeBinop Source # | |
Defined in Data.SerDoc.Info Methods (==) :: FieldSizeBinop -> FieldSizeBinop -> Bool # (/=) :: FieldSizeBinop -> FieldSizeBinop -> Bool # |