Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
ClickHaskell.Parameters
Synopsis
- data Parameter (name :: Symbol) (chType :: Type)
- parameters :: forall (params :: [Type]). (Parameters '[] -> Parameters params) -> Builder
- parameter :: forall name chType parameters userType. (InterpretableParameters parameters, ToChType chType userType, KnownSymbol name, ToQueryPart chType) => userType -> Parameters parameters -> WithPassedParameter (Parameter name chType) parameters
- renderParameters :: Parameters parameters -> Builder
- type ParametersInterpreter a = Parameters a
- newtype Parameters (parameters :: [Type]) = MkParametersInterpreter {}
- class InterpretableParameters (ps :: [Type]) where
- type WithPassedParameter p ps = withPassedParameter | withPassedParameter -> ps p
- interpretParameter :: forall name chType. (KnownSymbol name, ToQueryPart chType) => chType -> Parameters ps -> WithPassedParameter (Parameter name chType) ps
- renderParameter :: forall name chType. (KnownSymbol name, ToQueryPart chType) => chType -> Builder
- type family CheckParameters (tableFunctionParams :: [Type]) (passedParams :: [Type]) :: Constraint where ...
- type family CheckDuplicates (passedParams :: [Type]) :: Constraint where ...
- type family CheckParamDuplicates (param :: Type) (passedParams :: [Type]) :: Constraint where ...
- type family GoCheckParameters (tableFunctionParams :: [Type]) (passedParams :: [Type]) (acc :: [Type]) (firstRound :: Bool) :: Constraint where ...
Documentation
parameters :: forall (params :: [Type]). (Parameters '[] -> Parameters params) -> Builder Source #
>>>
parameters (parameter @"a3" @ChString ("a3Val" :: String) . parameter @"a2" @ChString ("a2Val" :: String))
"(a2='a2Val', a3='a3Val')"
parameter :: forall name chType parameters userType. (InterpretableParameters parameters, ToChType chType userType, KnownSymbol name, ToQueryPart chType) => userType -> Parameters parameters -> WithPassedParameter (Parameter name chType) parameters Source #
renderParameters :: Parameters parameters -> Builder Source #
type ParametersInterpreter a = Parameters a Source #
Deprecated: This type would be removed in next major release. Use Parameters instead
newtype Parameters (parameters :: [Type]) Source #
Constructors
MkParametersInterpreter | |
Fields |
class InterpretableParameters (ps :: [Type]) where Source #
Associated Types
type WithPassedParameter p ps = withPassedParameter | withPassedParameter -> ps p Source #
Methods
interpretParameter :: forall name chType. (KnownSymbol name, ToQueryPart chType) => chType -> Parameters ps -> WithPassedParameter (Parameter name chType) ps Source #
Instances
InterpretableParameters ('[] :: [Type]) Source # | |
Defined in ClickHaskell.Parameters Associated Types type WithPassedParameter p '[] = (withPassedParameter :: Type) Source # Methods interpretParameter :: forall (name :: Symbol) chType. (KnownSymbol name, ToQueryPart chType) => chType -> Parameters '[] -> WithPassedParameter (Parameter name chType) '[] Source # | |
InterpretableParameters (x ': xs) Source # | |
Defined in ClickHaskell.Parameters Associated Types type WithPassedParameter p (x ': xs) = (withPassedParameter :: Type) Source # Methods interpretParameter :: forall (name :: Symbol) chType. (KnownSymbol name, ToQueryPart chType) => chType -> Parameters (x ': xs) -> WithPassedParameter (Parameter name chType) (x ': xs) Source # |
renderParameter :: forall name chType. (KnownSymbol name, ToQueryPart chType) => chType -> Builder Source #
type family CheckParameters (tableFunctionParams :: [Type]) (passedParams :: [Type]) :: Constraint where ... Source #
Equations
CheckParameters tfs ps = (CheckDuplicates ps, GoCheckParameters tfs ps '[] True) |
type family CheckDuplicates (passedParams :: [Type]) :: Constraint where ... Source #
Equations
CheckDuplicates '[] = () | |
CheckDuplicates (p ': ps) = (CheckParamDuplicates p ps, CheckDuplicates ps) |
type family CheckParamDuplicates (param :: Type) (passedParams :: [Type]) :: Constraint where ... Source #
Equations
CheckParamDuplicates _ '[] = () | |
CheckParamDuplicates (Parameter name1 chType) (Parameter name2 _ ': ps) = If (name1 == name2) (TypeError (('Text "Duplicated parameter \"" :<>: 'Text name1) :<>: 'Text "\" in passed parameters")) (CheckParamDuplicates (Parameter name1 chType) ps) |
type family GoCheckParameters (tableFunctionParams :: [Type]) (passedParams :: [Type]) (acc :: [Type]) (firstRound :: Bool) :: Constraint where ... Source #
Equations
GoCheckParameters '[] '[] '[] _ = () | |
GoCheckParameters (Parameter name _ ': _) '[] '[] _ = TypeError (('Text "Missing \"" :<>: 'Text name) :<>: 'Text "\" in passed parameters.") | |
GoCheckParameters '[] (p ': _) _ _ = TypeError ('Text "More parameters passed than used in the view") | |
GoCheckParameters '[] '[] (p ': _) _ = TypeError ('Text "More parameters passed than used in the view") | |
GoCheckParameters (Parameter name1 _ ': ps) '[] (Parameter name2 _ ': ps') False = TypeError (('Text "Missing \"" :<>: 'Text name1) :<>: 'Text "\" in passed parameters") | |
GoCheckParameters (p ': ps) '[] (p' ': ps') True = GoCheckParameters (p ': ps) (p' ': ps') '[] False | |
GoCheckParameters (Parameter name1 _ ': ps) (Parameter name1 _ ': ps') acc b = GoCheckParameters ps ps' acc True | |
GoCheckParameters (Parameter name1 chType1 ': ps) (Parameter name2 chType2 ': ps') acc b = GoCheckParameters (Parameter name1 chType1 ': ps) ps' (Parameter name2 chType2 ': acc) b |