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 |
Instances
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
Instances
Eq Decimal Source # | |
Show Decimal Source # | |
Generic Decimal Source # | |
NFData Decimal Source # | |
Defined in Argo.Internal.Type.Decimal | |
HasCodec Decimal Source # | |
Lift Decimal Source # | |
type Rep Decimal Source # | |
Defined in Argo.Internal.Type.Decimal type Rep Decimal = D1 ('MetaData "Decimal" "Argo.Internal.Type.Decimal" "argo-0.2022.2.27-EIRSB3gebOh7YnqVPHHxsB" 'False) (C1 ('MetaCons "Decimal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))) |
newtype Identifier Source #
Instances
Instances
Lift value => Lift (Member value :: Type) Source # | |
Eq value => Eq (Member value) Source # | |
Show value => Show (Member value) Source # | |
Generic (Member value) Source # | |
NFData value => NFData (Member value) Source # | |
Defined in Argo.Internal.Json.Member | |
type Rep (Member value) Source # | |
Defined in Argo.Internal.Json.Member type Rep (Member value) = D1 ('MetaData "Member" "Argo.Internal.Json.Member" "argo-0.2022.2.27-EIRSB3gebOh7YnqVPHHxsB" 'False) (C1 ('MetaCons "Member" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 value))) |
Instances
Eq Name Source # | |
Ord Name Source # | |
Show Name Source # | |
IsString Name Source # | |
Defined in Argo.Internal.Json.Name fromString :: String -> Name # | |
Generic Name Source # | |
NFData Name Source # | |
Defined in Argo.Internal.Json.Name | |
HasCodec Name Source # | |
Lift Name Source # | |
HasCodec a => HasCodec (Map Name a) Source # | |
type Rep Name Source # | |
Defined in Argo.Internal.Json.Name |
data Permission Source #
Instances
Eq Permission Source # | |
Defined in Argo.Internal.Type.Permission (==) :: Permission -> Permission -> Bool # (/=) :: Permission -> Permission -> Bool # | |
Show Permission Source # | |
Defined in Argo.Internal.Type.Permission showsPrec :: Int -> Permission -> ShowS # show :: Permission -> String # showList :: [Permission] -> ShowS # | |
Generic Permission Source # | |
Defined in Argo.Internal.Type.Permission type Rep Permission :: Type -> Type # from :: Permission -> Rep Permission x # to :: Rep Permission x -> Permission # | |
NFData Permission Source # | |
Defined in Argo.Internal.Type.Permission rnf :: Permission -> () # | |
Lift Permission Source # | |
Defined in Argo.Internal.Type.Permission lift :: Permission -> Q Exp # liftTyped :: Permission -> Q (TExp Permission) # | |
type Rep Permission Source # | |
A JSON pointer, as described by RFC 6901. https://datatracker.ietf.org/doc/html/rfc6901