Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Value where
- decode :: HasCodec a => ByteString -> Either String a
- decodePointer :: ByteString -> Either String Pointer
- fromValue :: HasCodec a => Value -> Either String a
- encode :: HasCodec a => a -> Builder
- encodeWith :: HasCodec a => Indent -> a -> Builder
- encodePointer :: Pointer -> Builder
- toValue :: HasCodec a => a -> Value
- class Typeable a => HasCodec a where
- identified :: forall a. Typeable a => Value a -> Value a
- withIdentifier :: Identifier -> Value a -> Value a
- map :: (Functor r, Functor w) => (a -> b) -> (b -> a) -> Codec r w s a a -> Codec r w s b b
- mapMaybe :: (Alternative r, Alternative w, Monad r, Monad w) => (o2 -> Maybe o1) -> (i1 -> Maybe i2) -> Codec r w s i2 o2 -> Codec r w s i1 o1
- project :: (i -> f) -> Codec r w s f o -> Codec r w s i o
- fromArrayCodec :: Permission -> Array a -> Value a
- element :: HasCodec o => (i -> o) -> Element i o
- fromObjectCodec :: Permission -> Object a -> Value a
- required :: HasCodec f => (i -> f) -> Name -> Member i f
- optional :: HasCodec f => (i -> Maybe f) -> Name -> Member i (Maybe f)
- schema :: Codec r w s i o -> s
- oneOf :: Foldable t => t Schema -> Schema
- evaluate :: Pointer -> Value -> Either String Value
- value :: QuasiQuoter
- pointer :: QuasiQuoter
- type Codec a = Value a
- data Decimal where
- newtype Identifier = Identifier Text
- data Indent
- data Member value = Member Name value
- data Name where
- data Permission
- newtype Pointer = Pointer [Token]
- data Schema
- newtype Token = Token Text
Documentation
A JSON (JavaScript Object Notation) value, as described by RFC 8259. https://datatracker.ietf.org/doc/html/rfc8259
pattern Array :: [Value] -> Value | |
pattern Boolean :: Bool -> Value | |
pattern Null :: Value | |
pattern Number :: Decimal -> Value | |
pattern Object :: [Member Value] -> Value | |
pattern String :: Text -> Value |
Decoding
Encoding
encodePointer :: Pointer -> Builder Source #
Codecs
class Typeable a => HasCodec a where Source #
Instances
withIdentifier :: Identifier -> Value a -> Value a Source #
map :: (Functor r, Functor w) => (a -> b) -> (b -> a) -> Codec r w s a a -> Codec r w s b b Source #
mapMaybe :: (Alternative r, Alternative w, Monad r, Monad w) => (o2 -> Maybe o1) -> (i1 -> Maybe i2) -> Codec r w s i2 o2 -> Codec r w s i1 o1 Source #
Arrays
fromArrayCodec :: Permission -> Array a -> Value a Source #
Objects
fromObjectCodec :: Permission -> Object a -> Value a Source #
Schemas
Pointers
Quasi Quoters
value :: QuasiQuoter Source #
Types
newtype Identifier Source #
Instances
data Permission Source #
Instances
Show Permission Source # | |
Defined in Argo.Internal.Type.Permission showsPrec :: Int -> Permission -> ShowS # show :: Permission -> String # showList :: [Permission] -> ShowS # | |
NFData Permission Source # | |
Defined in Argo.Internal.Type.Permission rnf :: Permission -> () # | |
Eq Permission Source # | |
Defined in Argo.Internal.Type.Permission (==) :: Permission -> Permission -> Bool # (/=) :: Permission -> Permission -> Bool # | |
Lift Permission Source # | |
Defined in Argo.Internal.Type.Permission lift :: Quote m => Permission -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => Permission -> Code m Permission # |
A JSON pointer, as described by RFC 6901. https://datatracker.ietf.org/doc/html/rfc6901