| 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 #