| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Servant.Util.Combinators.Filtering.Construction
Contents
Description
Helpers for defining filters manually.
Synopsis
- noFilters :: FilteringSpec params
- mkFilteringSpec :: [SomeFilter params] -> FilteringSpec params
- (?/) :: forall name params filter. MkSomeFilter name filter params params => NameLabel name -> filter -> SomeFilter params
- (?/=) :: forall name params filter. MkSomeFilter name (FilterMatching filter) params params => NameLabel name -> filter -> SomeFilter params
- (?/<) :: forall name params filter. MkSomeFilter name (FilterComparing filter) params params => NameLabel name -> filter -> SomeFilter params
- (?/>) :: forall name params filter. MkSomeFilter name (FilterComparing filter) params params => NameLabel name -> filter -> SomeFilter params
- (?/<=) :: forall name params filter. MkSomeFilter name (FilterComparing filter) params params => NameLabel name -> filter -> SomeFilter params
- (?/>=) :: forall name params filter. MkSomeFilter name (FilterComparing filter) params params => NameLabel name -> filter -> SomeFilter params
- (?/~) :: forall name filter' params filter. (MkSomeFilter name filter' params params, Coercible filter filter') => NameLabel name -> filter -> SomeFilter params
- textLike :: forall name params text. (MkSomeFilter name (FilterLike text) params params, HasCallStack) => NameLabel name -> LText -> SomeFilter params
- textILike :: forall name params text. (MkSomeFilter name (FilterLike text) params params, HasCallStack) => NameLabel name -> LText -> SomeFilter params
- textContains :: forall name params text. MkSomeFilter name (FilterLike text) params params => NameLabel name -> Text -> SomeFilter params
- textIContains :: forall name params text. MkSomeFilter name (FilterLike text) params params => NameLabel name -> Text -> SomeFilter params
Documentation
noFilters :: FilteringSpec params Source #
Return all items.
mkFilteringSpec :: [SomeFilter params] -> FilteringSpec params Source #
Build a filtering specification.
Used along with OverloadedLabels extension and ($) / ($=) operators.
Example:
filteringSpec :: FilteringSpec ["id" ?: 'AutoFilter Int, "desc" ?: 'ManualFilter Text]
filteringSpec = mkFilteringSpec
[ -- Constructing an auto filter
, #id ?/ FilterGT 0
-- The following two lines are equivalent
, #id ?/ FilterMatching 5
, #id ?/= 5
-- Constructing a manually implemented filter
, #desc ?/~ "You are my sunshine, my only sunshine"
]
You can freely use fromList instead of this function.
(?/) :: forall name params filter. MkSomeFilter name filter params params => NameLabel name -> filter -> SomeFilter params infixr 0 Source #
"Filter by" operation.
Wraps a filter corresponding to the given name into SomeFilter which can later be
passed to mkSomeFilter.
(?/=) :: forall name params filter. MkSomeFilter name (FilterMatching filter) params params => NameLabel name -> filter -> SomeFilter params infixr 0 Source #
"Filter by matching" operation.
(?/<) :: forall name params filter. MkSomeFilter name (FilterComparing filter) params params => NameLabel name -> filter -> SomeFilter params infixr 0 Source #
Make a comparing filter.
(?/>) :: forall name params filter. MkSomeFilter name (FilterComparing filter) params params => NameLabel name -> filter -> SomeFilter params infixr 0 Source #
Make a comparing filter.
(?/<=) :: forall name params filter. MkSomeFilter name (FilterComparing filter) params params => NameLabel name -> filter -> SomeFilter params infixr 0 Source #
Make a comparing filter.
(?/>=) :: forall name params filter. MkSomeFilter name (FilterComparing filter) params params => NameLabel name -> filter -> SomeFilter params infixr 0 Source #
Make a comparing filter.
(?/~) :: forall name filter' params filter. (MkSomeFilter name filter' params params, Coercible filter filter') => NameLabel name -> filter -> SomeFilter params Source #
Construct a (manual) filter from a value with the same representation as expected one. Helpful when newtypes are heavely used in API parameters.
textLike :: forall name params text. (MkSomeFilter name (FilterLike text) params params, HasCallStack) => NameLabel name -> LText -> SomeFilter params infixr 0 Source #
Make a simple POSIX regex filter.
textILike :: forall name params text. (MkSomeFilter name (FilterLike text) params params, HasCallStack) => NameLabel name -> LText -> SomeFilter params infixr 0 Source #
Make a simple POSIX regex case-insensitive filter.
textContains :: forall name params text. MkSomeFilter name (FilterLike text) params params => NameLabel name -> Text -> SomeFilter params infixr 0 Source #
Make a filter that checks whether the given text is included.
textIContains :: forall name params text. MkSomeFilter name (FilterLike text) params params => NameLabel name -> Text -> SomeFilter params infixr 0 Source #
Make a filter that checks whether the given text is included, case-insensitive.
Orphan instances
| Default (FilteringSpec params) Source # | By default |
Methods def :: FilteringSpec params # | |