Safe Haskell | None |
---|---|
Language | Haskell2010 |
Servant.API.Range
Synopsis
- data Range (min :: Nat) (max :: Nat)
- unsafeRange :: forall (min :: Nat) (max :: Nat). Natural -> Range min max
- mkRange :: forall (min :: Nat) (max :: Nat). (KnownNat min, KnownNat max) => Natural -> Maybe (Range min max)
Documentation
data Range (min :: Nat) (max :: Nat) Source #
A newtype wrapper around Natural
that ensures the value is within a given range.
Example:
>>>
:{
let validRange = mkRange 5 :: Maybe (Range 1 10) in case validRange of Just r -> "Valid range: " ++ show (unRange r) Nothing -> "Invalid range" :} "Valid range: 5"
>>>
:{
let invalidRange = mkRange 15 :: Maybe (Range 1 10) in case invalidRange of Just r -> "Valid range: " ++ show (unRange r) Nothing -> "Invalid range" :} "Invalid range"
>>>
decode "5" :: Maybe (Range 1 10)
Just (MkRange {unRange = 5})
>>>
decode "15" :: Maybe (Range 1 10)
Nothing
Instances
(KnownNat min, KnownNat max) => FromJSON (Range min max) Source # | |||||
Defined in Servant.API.Range Methods parseJSON :: Value -> Parser (Range min max) parseJSONList :: Value -> Parser [Range min max] omittedField :: Maybe (Range min max) | |||||
ToJSON (Range min max) Source # | |||||
Defined in Servant.API.Range Methods toJSON :: Range min max -> Value toEncoding :: Range min max -> Encoding toJSONList :: [Range min max] -> Value toEncodingList :: [Range min max] -> Encoding | |||||
(KnownNat min, KnownNat max) => Bounded (Range min max) Source # | |||||
Defined in Servant.API.Range | |||||
Generic (Range min max) Source # | |||||
Defined in Servant.API.Range Associated Types
| |||||
Ix (Range min max) Source # | |||||
Defined in Servant.API.Range Methods range :: (Range min max, Range min max) -> [Range min max] index :: (Range min max, Range min max) -> Range min max -> Int unsafeIndex :: (Range min max, Range min max) -> Range min max -> Int inRange :: (Range min max, Range min max) -> Range min max -> Bool rangeSize :: (Range min max, Range min max) -> Int unsafeRangeSize :: (Range min max, Range min max) -> Int | |||||
Show (Range min max) Source # | |||||
Eq (Range min max) Source # | |||||
Ord (Range min max) Source # | |||||
Defined in Servant.API.Range | |||||
(KnownNat min, KnownNat max) => FromHttpApiData (Range min max) Source # | |||||
Defined in Servant.API.Range Methods parseUrlPiece :: Text -> Either Text (Range min max) # parseHeader :: ByteString -> Either Text (Range min max) # parseQueryParam :: Text -> Either Text (Range min max) # | |||||
ToHttpApiData (Range min max) Source # | |||||
Defined in Servant.API.Range Methods toUrlPiece :: Range min max -> Text # toEncodedUrlPiece :: Range min max -> Builder # toHeader :: Range min max -> ByteString # toQueryParam :: Range min max -> Text # toEncodedQueryParam :: Range min max -> Builder # | |||||
type Rep (Range min max) Source # | |||||
Defined in Servant.API.Range |
unsafeRange :: forall (min :: Nat) (max :: Nat). Natural -> Range min max Source #