Safe Haskell | None |
---|---|
Language | Haskell2010 |
Distribution.FieldGrammar.Class
Synopsis
- class FieldGrammar g where
- uniqueField :: (FieldGrammar g, Parsec a, Pretty a) => FieldName -> ALens' s a -> g s a
- optionalField :: (FieldGrammar g, Parsec a, Pretty a) => FieldName -> ALens' s (Maybe a) -> g s (Maybe a)
- optionalFieldDef :: (FieldGrammar g, Functor (g s), Parsec a, Pretty a, Eq a, Show a) => FieldName -> LensLike' (Pretext (Maybe a) (Maybe a)) s a -> a -> g s a
- optionalFieldDefAla :: (FieldGrammar g, Functor (g s), Parsec b, Pretty b, Newtype b a, Eq a, Show a) => FieldName -> (a -> b) -> LensLike' (Pretext (Maybe a) (Maybe a)) s a -> a -> g s a
- monoidalField :: (FieldGrammar g, Parsec a, Pretty a, Monoid a) => FieldName -> ALens' s a -> g s a
- deprecatedField' :: FieldGrammar g => String -> g s a -> g s a
Documentation
class FieldGrammar g where Source #
FieldGrammar
is parametrised by
s
which is a structure we are parsing. We need this to provide prettyprinter functionalitya
type of the field.
Note: We'd like to have forall s. Applicative (f s)
context.
Minimal complete definition
blurFieldGrammar, uniqueFieldAla, booleanFieldDef, optionalFieldAla, monoidalFieldAla, prefixedFields, knownField, hiddenField, deprecatedSince, availableSince
Methods
blurFieldGrammar :: ALens' a b -> g b c -> g a c Source #
Unfocus, zoom out, blur FieldGrammar
.
Arguments
:: (Parsec b, Pretty b, Newtype b a) | |
=> FieldName | field name |
-> (a -> b) |
|
-> ALens' s a | lens into the field |
-> g s a |
Field which should be defined, exactly once.
Boolean field with a default value.
Arguments
:: (Parsec b, Pretty b, Newtype b a) | |
=> FieldName | field name |
-> (a -> b) |
|
-> ALens' s (Maybe a) | lens into the field |
-> g s (Maybe a) |
Optional field.
Arguments
:: (Parsec b, Pretty b, Monoid a, Newtype b a) | |
=> FieldName | field name |
-> (a -> b) |
|
-> ALens' s a | lens into the field |
-> g s a |
Monoidal field.
Values are combined with mappend
.
Note: optionalFieldAla
is a monoidalField
with Last
monoid.
Arguments
:: FieldName | field name prefix |
-> ALens' s [(String, String)] | lens into the field |
-> g s [(String, String)] |
Parser matching all fields with a name starting with a prefix.
knownField :: FieldName -> g s () Source #
Known field, which we don't parse, neither pretty print.
Field which is parsed but not pretty printed.
Deprecated since
Arguments
:: [Int] | spec version |
-> g s a | |
-> g s a |
Annotate field with since spec-version.
Instances
Arguments
:: (FieldGrammar g, Parsec a, Pretty a) | |
=> FieldName | field name |
-> ALens' s a | lens into the field |
-> g s a |
Field which can be defined at most once.
Arguments
:: (FieldGrammar g, Parsec a, Pretty a) | |
=> FieldName | field name |
-> ALens' s (Maybe a) | lens into the field |
-> g s (Maybe a) |
Field which can be defined at most once.
Arguments
:: (FieldGrammar g, Functor (g s), Parsec a, Pretty a, Eq a, Show a) | |
=> FieldName | field name |
-> LensLike' (Pretext (Maybe a) (Maybe a)) s a |
|
-> a | default value |
-> g s a |
Optional field with default value.
Arguments
:: (FieldGrammar g, Functor (g s), Parsec b, Pretty b, Newtype b a, Eq a, Show a) | |
=> FieldName | field name |
-> (a -> b) |
|
-> LensLike' (Pretext (Maybe a) (Maybe a)) s a |
|
-> a | default value |
-> g s a |
Optional field with default value.
Arguments
:: (FieldGrammar g, Parsec a, Pretty a, Monoid a) | |
=> FieldName | field name |
-> ALens' s a | lens into the field |
-> g s a |
Field which can be define multiple times, and the results are mappend
ed.
Arguments
:: FieldGrammar g | |
=> String | deprecation message |
-> g s a | |
-> g s a |
Deprecated field. If found, warning is issued.
Note: also it's not pretty printed!