-- | Auto filters support for basic types. module Servant.Util.Combinators.Filtering.Support ( NumericFilterTypes , TextFilterTypes , DatetimeFilterTypes , AllFilterTypes ) where import Universum import Data.Time.Calendar (Day) import Data.Time.Clock (UTCTime) import Data.Time.LocalTime (LocalTime) import Servant.Util.Combinators.Filtering.Base import Servant.Util.Combinators.Filtering.Filters type NumericFilterTypes = [FilterMatching, FilterComparing] type TextFilterTypes = [FilterMatching, FilterComparing, FilterLike] type ByteStringFilterTypes = [FilterMatching, FilterComparing] type DatetimeFilterTypes = '[FilterComparing] type AllFilterTypes = '[FilterMatching, FilterComparing, FilterLike] type instance SupportedFilters () = '[] type instance SupportedFilters Bool = '[FilterMatching] type instance SupportedFilters Integer = NumericFilterTypes type instance SupportedFilters Int = NumericFilterTypes type instance SupportedFilters Int8 = NumericFilterTypes type instance SupportedFilters Int16 = NumericFilterTypes type instance SupportedFilters Int32 = NumericFilterTypes type instance SupportedFilters Int64 = NumericFilterTypes type instance SupportedFilters Natural = NumericFilterTypes type instance SupportedFilters Word = NumericFilterTypes type instance SupportedFilters Word8 = NumericFilterTypes type instance SupportedFilters Word16 = NumericFilterTypes type instance SupportedFilters Word32 = NumericFilterTypes type instance SupportedFilters Word64 = NumericFilterTypes type instance SupportedFilters Float = NumericFilterTypes type instance SupportedFilters Double = NumericFilterTypes type instance SupportedFilters Char = [FilterMatching, FilterComparing] type instance SupportedFilters Text = TextFilterTypes type instance SupportedFilters ByteString = ByteStringFilterTypes type instance SupportedFilters UTCTime = DatetimeFilterTypes type instance SupportedFilters LocalTime = DatetimeFilterTypes type instance SupportedFilters Day = NumericFilterTypes