| 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 # | |