Safe Haskell | None |
---|---|
Language | Haskell2010 |
Servant.API.Range
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 | |||||
ToJSON (Range min max) Source # | |||||
(KnownNat min, KnownNat max) => Bounded (Range min max) Source # | |||||
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 Methods compare :: Range min max -> Range min max -> Ordering # (<) :: Range min max -> Range min max -> Bool # (<=) :: Range min max -> Range min max -> Bool # (>) :: Range min max -> Range min max -> Bool # (>=) :: Range min max -> Range min max -> Bool # | |||||
(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) # | |||||
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 |