Required argument. Not wrapped.
Moduleservant-0.20.2Haskell2010
Servant.API.Modifiers
- 8 types
- 3 values
- Packageservant-0.20.2
- Exports13
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceModifiers.hs
Required / optional argument
4 declarationsOptional argument. Wrapped in Maybe.
Fold modifier list to decide whether argument is required.
:kind! FoldRequired '[Required, Description "something"]FoldRequired '[Required, Description "something"] :: Bool= 'True
:kind! FoldRequired '[Required, Optional]FoldRequired '[Required, Optional] :: Bool= 'False
:kind! FoldRequired '[]FoldRequired '[] :: Bool= 'False
Implementation of FoldRequired.
Equations
FoldRequired' acc '[] = accFoldRequired' acc (Required ': mods) = FoldRequired' 'True modsFoldRequired' acc (Optional ': mods) = FoldRequired' 'False modsFoldRequired' acc (mod ': mods) = FoldRequired' acc mods
Lenient / strict parsing
4 declarationsStrictly parsed argument. Not wrapped.
Fold modifier list to decide whether argument should be parsed strictly or leniently.
:kind! FoldLenient '[]FoldLenient '[] :: Bool= 'False
Implementation of FoldLenient.
Equations
FoldLenient' acc '[] = accFoldLenient' acc (Lenient ': mods) = FoldLenient' 'True modsFoldLenient' acc (Strict ': mods) = FoldLenient' 'False modsFoldLenient' acc (mod ': mods) = FoldLenient' acc mods
Utilities
5 declarationsvalue
foldRequiredArgument :: SBoolI (FoldRequired mods)=> Proxy mods-> (a -> r)-> (Maybe a -> r)-> RequiredArgument mods a-> r
Fold a RequiredAgument into a value
value
unfoldRequiredArgument :: (Monad m, SBoolI (FoldRequired mods), SBoolI (FoldLenient mods))=> Proxy mods-> m (RequiredArgument mods a)error when argument is required
-> (Text -> m (RequiredArgument mods a))error when argument is strictly parsed
-> Maybe (Either Text a)value
-> m (RequiredArgument mods a)
Unfold a value into a RequiredArgument.
type
type RequestArgument (mods :: [Type]) a = If (FoldRequired mods) (If (FoldLenient mods) (Either Text a) a) (Maybe (If (FoldLenient mods) (Either Text a) a))value
unfoldRequestArgument :: (Monad m, SBoolI (FoldRequired mods), SBoolI (FoldLenient mods))=> Proxy mods-> m (RequestArgument mods a)error when argument is required
-> (Text -> m (RequestArgument mods a))error when argument is strictly parsed
-> Maybe (Either Text a)value
-> m (RequestArgument mods a)
Unfold a value into a RequestArgument.