-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Parse and render JSON.
--
-- Argo parses and renders JSON.
@package argo
@version 0.2022.2.2
module Argo.Codec.Codec
data Codec r w s i o
Codec :: r o -> (i -> w o) -> s -> Codec r w s i o
[decode] :: Codec r w s i o -> r o
[encode] :: Codec r w s i o -> i -> w o
[schema] :: Codec r w s i o -> s
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
tap :: Functor f => (a -> f b) -> a -> f a
toAlternative :: Alternative m => Maybe a -> m a
instance (GHC.Base.Functor r, GHC.Base.Functor w) => GHC.Base.Functor (Argo.Codec.Codec.Codec r w s i)
instance (GHC.Base.Applicative r, GHC.Base.Applicative w, GHC.Base.Applicative s, GHC.Base.Monoid a) => GHC.Base.Applicative (Argo.Codec.Codec.Codec r w (s a) i)
instance (GHC.Base.Alternative r, GHC.Base.Alternative w, GHC.Base.Applicative s, GHC.Base.Monoid a) => GHC.Base.Alternative (Argo.Codec.Codec.Codec r w (s a) i)
module Argo.Type.Flag
data Flag
Help :: Flag
Spaces :: String -> Flag
Tab :: Flag
Version :: Flag
instance GHC.Show.Show Argo.Type.Flag.Flag
instance GHC.Classes.Eq Argo.Type.Flag.Flag
module Argo.Type.Indent
data Indent
Spaces :: Int -> Indent
Tab :: Indent
instance GHC.Show.Show Argo.Type.Indent.Indent
instance GHC.Classes.Eq Argo.Type.Indent.Indent
module Argo.Type.Config
data Config
Config :: Indent -> Int -> Config
[indent] :: Config -> Indent
[level] :: Config -> Int
initial :: Config
hasIndent :: Config -> Bool
increaseLevel :: Config -> Config
instance GHC.Show.Show Argo.Type.Config.Config
instance GHC.Classes.Eq Argo.Type.Config.Config
module Argo.Type.Permission
data Permission
Allow :: Permission
Forbid :: Permission
instance GHC.Show.Show Argo.Type.Permission.Permission
instance GHC.Classes.Eq Argo.Type.Permission.Permission
module Argo.Type.Settings
data Settings
Settings :: Bool -> Indent -> Bool -> Settings
[help] :: Settings -> Bool
[indent] :: Settings -> Indent
[version] :: Settings -> Bool
initial :: Settings
applyFlag :: Settings -> Flag -> Either String Settings
instance GHC.Show.Show Argo.Type.Settings.Settings
instance GHC.Classes.Eq Argo.Type.Settings.Settings
module Argo.Literal
backspace :: Word8
carriageReturn :: Word8
colon :: Word8
comma :: Word8
digitNine :: Word8
digitOne :: Word8
digitZero :: Word8
false :: ByteString
formFeed :: Word8
fullStop :: Word8
horizontalTabulation :: Word8
hyphenMinus :: Word8
latinCapitalLetterE :: Word8
latinSmallLetterB :: Word8
latinSmallLetterE :: Word8
latinSmallLetterF :: Word8
latinSmallLetterN :: Word8
latinSmallLetterR :: Word8
latinSmallLetterT :: Word8
latinSmallLetterU :: Word8
leftCurlyBracket :: Word8
leftSquareBracket :: Word8
newLine :: Word8
null :: ByteString
plusSign :: Word8
quotationMark :: Word8
reverseSolidus :: Word8
rightCurlyBracket :: Word8
rightSquareBracket :: Word8
solidus :: Word8
space :: Word8
tilde :: Word8
true :: ByteString
module Argo.Type.Decimal
data Decimal
Decimal :: Integer -> Integer -> Decimal
negate :: Decimal -> Decimal
decimal :: Integer -> Integer -> Decimal
normalize :: Decimal -> Decimal
fromInteger :: Integer -> Decimal
toInteger :: Decimal -> Maybe Integer
fromRealFloat :: RealFloat a => a -> Maybe Decimal
toRealFloat :: RealFloat a => Decimal -> a
fromDigits :: [Int] -> Int -> Decimal
toRational :: Decimal -> Rational
fromRational :: Rational -> Maybe Decimal
factor :: (Num a, Integral b) => b -> a -> b -> (a, b)
instance GHC.Show.Show Argo.Type.Decimal.Decimal
instance Control.DeepSeq.NFData Argo.Type.Decimal.Decimal
instance Language.Haskell.TH.Syntax.Lift Argo.Type.Decimal.Decimal
instance GHC.Generics.Generic Argo.Type.Decimal.Decimal
instance GHC.Classes.Eq Argo.Type.Decimal.Decimal
module Argo.Schema.Identifier
newtype Identifier
Identifier :: Text -> Identifier
fromText :: Text -> Identifier
toText :: Identifier -> Text
instance GHC.Show.Show Argo.Schema.Identifier.Identifier
instance GHC.Classes.Ord Argo.Schema.Identifier.Identifier
instance Control.DeepSeq.NFData Argo.Schema.Identifier.Identifier
instance Language.Haskell.TH.Syntax.Lift Argo.Schema.Identifier.Identifier
instance GHC.Generics.Generic Argo.Schema.Identifier.Identifier
instance GHC.Classes.Eq Argo.Schema.Identifier.Identifier
instance Data.String.IsString Argo.Schema.Identifier.Identifier
instance GHC.Base.Semigroup Argo.Schema.Identifier.Identifier
module Argo.Type.Encoder
type Encoder = ReaderT Config (WriterT Builder Identity)
unwrap :: Config -> Encoder a -> (a, Builder)
run :: Config -> Encoder a -> Builder
list :: Encoder () -> Encoder () -> Encoder () -> (a -> Encoder ()) -> [a] -> Encoder ()
makeIndent :: Config -> Maybe Builder
withNewLine :: Maybe Builder -> Encoder ()
module Argo.Type.Decoder
type Decoder = StateT ByteString (ExceptT String Identity)
unwrap :: Decoder a -> ByteString -> Either String (a, ByteString)
run :: Decoder a -> ByteString -> Either String a
list :: Decoder a -> Decoder [a]
listWith :: Decoder a -> [a] -> Decoder [a]
byteString :: ByteString -> Decoder ()
dropWhile :: (Word8 -> Bool) -> Decoder ()
eof :: Decoder ()
isDigit :: Word8 -> Bool
isSpace :: Word8 -> Bool
satisfy :: (Word8 -> Bool) -> Decoder Word8
spaces :: Decoder ()
takeWhile :: (Word8 -> Bool) -> Decoder ByteString
takeWhile1 :: (Word8 -> Bool) -> Decoder ByteString
word8 :: Word8 -> Decoder ()
module Argo.Pointer.Token
newtype Token
Token :: Text -> Token
fromText :: Text -> Token
toText :: Token -> Text
decode :: Decoder Token
unescape :: ByteString -> Either String ByteString
unescapeHelper :: [Word8] -> Either String [Word8]
encode :: Token -> Encoder ()
encodeChar :: BoundedPrim Word8
encodeEscape :: Word8 -> BoundedPrim a
instance GHC.Show.Show Argo.Pointer.Token.Token
instance Control.DeepSeq.NFData Argo.Pointer.Token.Token
instance Language.Haskell.TH.Syntax.Lift Argo.Pointer.Token.Token
instance GHC.Generics.Generic Argo.Pointer.Token.Token
instance GHC.Classes.Eq Argo.Pointer.Token.Token
instance Data.String.IsString Argo.Pointer.Token.Token
module Argo.Json.String
newtype String
String :: Text -> String
fromText :: Text -> String
toText :: String -> Text
encode :: String -> Encoder ()
encodeChar :: BoundedPrim Word8
encodeShortEscape :: Word8 -> BoundedPrim a
encodeLongEscape :: BoundedPrim Word8
word8ToWord16 :: Word8 -> Word16
decode :: Decoder String
findAt :: Word8 -> Int -> ByteString -> Maybe Int
countConsecutive :: Word8 -> Int -> ByteString -> Int
getClose :: ByteString -> Int -> Maybe Int
unescapeText :: Text -> Either String Text
combineSurrogatePairs :: String -> String
combineSurrogatePair :: Char -> Char -> Char
isHighSurrogate :: Char -> Bool
isLowSurrogate :: Char -> Bool
unescapeString :: String -> Either String String
fromLongEscape :: Char -> Char -> Char -> Char -> Maybe Char
fromHexadecimalDigit :: Char -> Maybe Int
instance GHC.Show.Show Argo.Json.String.String
instance GHC.Classes.Ord Argo.Json.String.String
instance Control.DeepSeq.NFData Argo.Json.String.String
instance Language.Haskell.TH.Syntax.Lift Argo.Json.String.String
instance GHC.Generics.Generic Argo.Json.String.String
instance GHC.Classes.Eq Argo.Json.String.String
instance Data.String.IsString Argo.Json.String.String
module Argo.Json.Name
newtype Name
Name :: String -> Name
fromString :: String -> Name
toString :: Name -> String
encode :: Name -> Encoder ()
decode :: Decoder Name
instance GHC.Show.Show Argo.Json.Name.Name
instance GHC.Classes.Ord Argo.Json.Name.Name
instance Control.DeepSeq.NFData Argo.Json.Name.Name
instance Language.Haskell.TH.Syntax.Lift Argo.Json.Name.Name
instance GHC.Generics.Generic Argo.Json.Name.Name
instance GHC.Classes.Eq Argo.Json.Name.Name
instance Data.String.IsString Argo.Json.Name.Name
module Argo.Json.Number
newtype Number
Number :: Decimal -> Number
fromDecimal :: Decimal -> Number
toDecimal :: Number -> Decimal
encode :: Number -> Encoder ()
decode :: Decoder Number
negateIf :: Bool -> Integer -> Integer
fromDigits :: ByteString -> Integer
intToInteger :: Int -> Integer
word8ToInteger :: Word8 -> Integer
instance GHC.Show.Show Argo.Json.Number.Number
instance Control.DeepSeq.NFData Argo.Json.Number.Number
instance Language.Haskell.TH.Syntax.Lift Argo.Json.Number.Number
instance GHC.Generics.Generic Argo.Json.Number.Number
instance GHC.Classes.Eq Argo.Json.Number.Number
module Argo.Json.Null
newtype Null
Null :: () -> Null
fromUnit :: () -> Null
toUnit :: Null -> ()
encode :: Null -> Encoder ()
decode :: Decoder Null
instance GHC.Show.Show Argo.Json.Null.Null
instance Control.DeepSeq.NFData Argo.Json.Null.Null
instance Language.Haskell.TH.Syntax.Lift Argo.Json.Null.Null
instance GHC.Generics.Generic Argo.Json.Null.Null
instance GHC.Classes.Eq Argo.Json.Null.Null
module Argo.Json.Member
data Member value
Member :: Name -> value -> Member value
fromTuple :: (Name, value) -> Member value
toTuple :: Member value -> (Name, value)
encode :: (value -> Encoder ()) -> Member value -> Encoder ()
decode :: Decoder value -> Decoder (Member value)
instance GHC.Show.Show value => GHC.Show.Show (Argo.Json.Member.Member value)
instance Control.DeepSeq.NFData value => Control.DeepSeq.NFData (Argo.Json.Member.Member value)
instance Language.Haskell.TH.Syntax.Lift value => Language.Haskell.TH.Syntax.Lift (Argo.Json.Member.Member value)
instance GHC.Generics.Generic (Argo.Json.Member.Member value)
instance GHC.Classes.Eq value => GHC.Classes.Eq (Argo.Json.Member.Member value)
module Argo.Json.Object
newtype Object value
Object :: [Member value] -> Object value
fromList :: [Member value] -> Object value
toList :: Object value -> [Member value]
encode :: (value -> Encoder ()) -> Object value -> Encoder ()
encodeElement :: (value -> Encoder ()) -> Int -> Member value -> Encoder ()
decode :: Decoder value -> Decoder (Object value)
instance GHC.Show.Show value => GHC.Show.Show (Argo.Json.Object.Object value)
instance Control.DeepSeq.NFData value => Control.DeepSeq.NFData (Argo.Json.Object.Object value)
instance Language.Haskell.TH.Syntax.Lift value => Language.Haskell.TH.Syntax.Lift (Argo.Json.Object.Object value)
instance GHC.Generics.Generic (Argo.Json.Object.Object value)
instance GHC.Classes.Eq value => GHC.Classes.Eq (Argo.Json.Object.Object value)
module Argo.Json.Boolean
newtype Boolean
Boolean :: Bool -> Boolean
fromBool :: Bool -> Boolean
toBool :: Boolean -> Bool
encode :: Boolean -> Encoder ()
decode :: Decoder Boolean
decodeFalse :: Decoder Boolean
decodeTrue :: Decoder Boolean
instance GHC.Show.Show Argo.Json.Boolean.Boolean
instance Control.DeepSeq.NFData Argo.Json.Boolean.Boolean
instance Language.Haskell.TH.Syntax.Lift Argo.Json.Boolean.Boolean
instance GHC.Generics.Generic Argo.Json.Boolean.Boolean
instance GHC.Classes.Eq Argo.Json.Boolean.Boolean
module Argo.Json.Array
newtype Array value
Array :: [value] -> Array value
fromList :: [value] -> Array value
toList :: Array value -> [value]
encode :: (value -> Encoder ()) -> Array value -> Encoder ()
decode :: Decoder value -> Decoder (Array value)
instance GHC.Show.Show value => GHC.Show.Show (Argo.Json.Array.Array value)
instance Control.DeepSeq.NFData value => Control.DeepSeq.NFData (Argo.Json.Array.Array value)
instance Language.Haskell.TH.Syntax.Lift value => Language.Haskell.TH.Syntax.Lift (Argo.Json.Array.Array value)
instance GHC.Generics.Generic (Argo.Json.Array.Array value)
instance GHC.Classes.Eq value => GHC.Classes.Eq (Argo.Json.Array.Array value)
module Argo.Json.Value
-- | A JSON (JavaScript Object Notation) value, as described by RFC 8259.
-- https://datatracker.ietf.org/doc/html/rfc8259
data Value
Null :: Null -> Value
Boolean :: Boolean -> Value
Number :: Number -> Value
String :: String -> Value
Array :: Array Value -> Value
Object :: Object Value -> Value
encode :: Value -> Encoder ()
decode :: Decoder Value
instance GHC.Show.Show Argo.Json.Value.Value
instance Control.DeepSeq.NFData Argo.Json.Value.Value
instance Language.Haskell.TH.Syntax.Lift Argo.Json.Value.Value
instance GHC.Generics.Generic Argo.Json.Value.Value
instance GHC.Classes.Eq Argo.Json.Value.Value
instance Data.String.IsString Argo.Json.Value.Value
module Argo.Schema.Schema
-- | A JSON Schema.
-- https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-01
newtype Schema
Schema :: Value -> Schema
fromValue :: Value -> Schema
toValue :: Schema -> Value
false :: Schema
true :: Schema
unidentified :: Schema -> (Maybe Identifier, Schema)
identified :: Identifier -> Schema -> (Maybe Identifier, Schema)
instance GHC.Show.Show Argo.Schema.Schema.Schema
instance Control.DeepSeq.NFData Argo.Schema.Schema.Schema
instance Language.Haskell.TH.Syntax.Lift Argo.Schema.Schema.Schema
instance GHC.Generics.Generic Argo.Schema.Schema.Schema
instance GHC.Classes.Eq Argo.Schema.Schema.Schema
instance GHC.Base.Semigroup Argo.Schema.Schema.Schema
instance GHC.Base.Monoid Argo.Schema.Schema.Schema
module Argo.Pointer.Pointer
-- | A JSON pointer, as described by RFC 6901.
-- https://datatracker.ietf.org/doc/html/rfc6901
newtype Pointer
Pointer :: [Token] -> Pointer
fromList :: [Token] -> Pointer
toList :: Pointer -> [Token]
decode :: Decoder Pointer
decodeToken :: Decoder Token
encode :: Pointer -> Encoder ()
encodeToken :: Token -> Encoder ()
evaluate :: Pointer -> Value -> Either String Value
atIndex :: Token -> Array value -> Either String value
tokenToIndex :: Token -> Either String Int
atKey :: Token -> Object value -> Either String value
instance GHC.Show.Show Argo.Pointer.Pointer.Pointer
instance Control.DeepSeq.NFData Argo.Pointer.Pointer.Pointer
instance Language.Haskell.TH.Syntax.Lift Argo.Pointer.Pointer.Pointer
instance GHC.Generics.Generic Argo.Pointer.Pointer.Pointer
instance GHC.Classes.Eq Argo.Pointer.Pointer.Pointer
module Argo.Pattern
pattern Null :: Value
pattern Boolean :: Bool -> Value
pattern Number :: Decimal -> Value
pattern String :: Text -> Value
pattern Array :: [Value] -> Value
pattern Object :: [Member Value] -> Value
pattern Name :: Text -> Name
pattern Decimal :: Integer -> Integer -> Decimal
module Argo.Codec.Value
decodeWith :: Value a -> Value -> Either String a
encodeWith :: Value a -> a -> Value
type Value a = Codec (ReaderT Value (ExceptT String Identity)) (MaybeT (StateT Value Identity)) (AccumT (Map Identifier Schema) Identity (Maybe Identifier, Schema)) a a
arrayCodec :: Value (Array Value)
objectCodec :: Value (Object Value)
literalCodec :: Value -> Value ()
identified :: forall a. Typeable a => Value a -> Value a
getRef :: Value a -> AccumT (Map Identifier Schema) Identity (Either Schema Identifier)
ref :: Either Schema Identifier -> Value
module Argo.Codec.List
type List s e a = Codec (StateT [e] (ExceptT String Identity)) (WriterT [e] Identity) s a a
fromListCodec :: (Permission -> s -> AccumT (Map Identifier Schema) Identity (Maybe Identifier, Schema)) -> Value [e] -> Permission -> List s e a -> Value a
module Argo.Codec.Object
type Object a = List (AccumT (Map Identifier Schema) Identity [((Name, Bool), (Maybe Identifier, Schema))]) (Member Value) a
fromObjectCodec :: Permission -> Object a -> Value a
required :: Name -> Value a -> Object a
optional :: Name -> Value a -> Object (Maybe a)
tagged :: String -> Value a -> Value a
module Argo.Codec.Array
type Array a = List (AccumT (Map Identifier Schema) Identity [(Maybe Identifier, Schema)]) Value a
fromArrayCodec :: Permission -> Array a -> Value a
element :: Value a -> Array a
module Argo.Class.HasCodec
class HasCodec a
codec :: HasCodec a => Value a
basicCodec :: forall a. Typeable a => Schema -> (a -> Value) -> (Value -> Maybe a) -> Value a
castValue :: String -> (Value -> Maybe a) -> ReaderT Value (ExceptT String Identity) a
typeMismatch :: String -> Value -> String
instance Argo.Class.HasCodec.HasCodec Argo.Json.Value.Value
instance Argo.Class.HasCodec.HasCodec Argo.Json.Null.Null
instance Argo.Class.HasCodec.HasCodec Argo.Json.Boolean.Boolean
instance Argo.Class.HasCodec.HasCodec Argo.Json.Number.Number
instance Argo.Class.HasCodec.HasCodec Argo.Json.String.String
instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Argo.Json.Array.Array a)
instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Argo.Json.Object.Object a)
instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (GHC.Maybe.Maybe a)
instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b) => Argo.Class.HasCodec.HasCodec (Data.Either.Either a b)
instance Argo.Class.HasCodec.HasCodec ()
instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b) => Argo.Class.HasCodec.HasCodec (a, b)
instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c) => Argo.Class.HasCodec.HasCodec (a, b, c)
instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Argo.Class.HasCodec.HasCodec d, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c, Data.Typeable.Internal.Typeable d) => Argo.Class.HasCodec.HasCodec (a, b, c, d)
instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Argo.Class.HasCodec.HasCodec d, Argo.Class.HasCodec.HasCodec e, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c, Data.Typeable.Internal.Typeable d, Data.Typeable.Internal.Typeable e) => Argo.Class.HasCodec.HasCodec (a, b, c, d, e)
instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Argo.Class.HasCodec.HasCodec d, Argo.Class.HasCodec.HasCodec e, Argo.Class.HasCodec.HasCodec f, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c, Data.Typeable.Internal.Typeable d, Data.Typeable.Internal.Typeable e, Data.Typeable.Internal.Typeable f) => Argo.Class.HasCodec.HasCodec (a, b, c, d, e, f)
instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Argo.Class.HasCodec.HasCodec d, Argo.Class.HasCodec.HasCodec e, Argo.Class.HasCodec.HasCodec f, Argo.Class.HasCodec.HasCodec g, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c, Data.Typeable.Internal.Typeable d, Data.Typeable.Internal.Typeable e, Data.Typeable.Internal.Typeable f, Data.Typeable.Internal.Typeable g) => Argo.Class.HasCodec.HasCodec (a, b, c, d, e, f, g)
instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Argo.Class.HasCodec.HasCodec d, Argo.Class.HasCodec.HasCodec e, Argo.Class.HasCodec.HasCodec f, Argo.Class.HasCodec.HasCodec g, Argo.Class.HasCodec.HasCodec h, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c, Data.Typeable.Internal.Typeable d, Data.Typeable.Internal.Typeable e, Data.Typeable.Internal.Typeable f, Data.Typeable.Internal.Typeable g, Data.Typeable.Internal.Typeable h) => Argo.Class.HasCodec.HasCodec (a, b, c, d, e, f, g, h)
instance Argo.Class.HasCodec.HasCodec GHC.Types.Bool
instance Argo.Class.HasCodec.HasCodec Argo.Type.Decimal.Decimal
instance Argo.Class.HasCodec.HasCodec Data.Text.Internal.Text
instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec [a]
instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Data.Map.Internal.Map Argo.Json.Name.Name a)
instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Data.Map.Internal.Map Argo.Json.String.String a)
instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Data.Map.Internal.Map Data.Text.Internal.Text a)
instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Data.Map.Internal.Map Argo.Vendor.Text.LazyText a)
instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Data.Map.Internal.Map GHC.Base.String a)
instance Argo.Class.HasCodec.HasCodec GHC.Base.String
instance Argo.Class.HasCodec.HasCodec GHC.Types.Char
instance Argo.Class.HasCodec.HasCodec Argo.Vendor.Text.LazyText
instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (GHC.Base.NonEmpty a)
instance Argo.Class.HasCodec.HasCodec GHC.Integer.Type.Integer
instance Argo.Class.HasCodec.HasCodec GHC.Types.Int
instance Argo.Class.HasCodec.HasCodec GHC.Int.Int8
instance Argo.Class.HasCodec.HasCodec GHC.Int.Int16
instance Argo.Class.HasCodec.HasCodec GHC.Int.Int32
instance Argo.Class.HasCodec.HasCodec GHC.Int.Int64
instance Argo.Class.HasCodec.HasCodec GHC.Natural.Natural
instance Argo.Class.HasCodec.HasCodec GHC.Types.Word
instance Argo.Class.HasCodec.HasCodec GHC.Word.Word8
instance Argo.Class.HasCodec.HasCodec GHC.Word.Word16
instance Argo.Class.HasCodec.HasCodec GHC.Word.Word32
instance Argo.Class.HasCodec.HasCodec GHC.Word.Word64
instance Argo.Class.HasCodec.HasCodec GHC.Types.Float
instance Argo.Class.HasCodec.HasCodec GHC.Types.Double
instance Argo.Class.HasCodec.HasCodec Argo.Pointer.Pointer.Pointer
instance Argo.Class.HasCodec.HasCodec Argo.Schema.Schema.Schema
module Argo.Encode
encode :: HasCodec a => a -> Builder
encodeWith :: HasCodec a => Indent -> a -> Builder
encodePointer :: Pointer -> Builder
module Argo.Decode
decode :: HasCodec a => ByteString -> Either String a
decodePointer :: ByteString -> Either String Pointer
module Argo.QuasiQuoter
pointer :: QuasiQuoter
schema :: QuasiQuoter
value :: QuasiQuoter
asValue :: Value -> Value
defaultQuasiQuoter :: QuasiQuoter
module Argo
-- | A JSON (JavaScript Object Notation) value, as described by RFC 8259.
-- https://datatracker.ietf.org/doc/html/rfc8259
data Value
pattern Array :: [Value] -> Value
pattern Boolean :: Bool -> Value
pattern Null :: Value
pattern Number :: Decimal -> Value
pattern Object :: [Member Value] -> Value
pattern String :: Text -> Value
data Name
pattern Name :: Text -> Name
data Member value
Member :: Name -> value -> Member value
encode :: HasCodec a => a -> Builder
encodeWith :: HasCodec a => Indent -> a -> Builder
data Indent
Spaces :: Int -> Indent
Tab :: Indent
decode :: HasCodec a => ByteString -> Either String a
class HasCodec a
codec :: HasCodec a => Value a
value :: QuasiQuoter
pointer :: QuasiQuoter
schema :: QuasiQuoter
-- | A JSON pointer, as described by RFC 6901.
-- https://datatracker.ietf.org/doc/html/rfc6901
newtype Pointer
Pointer :: [Token] -> Pointer
newtype Token
Token :: Text -> Token
evaluate :: Pointer -> Value -> Either String Value
encodePointer :: Pointer -> Builder
decodePointer :: ByteString -> Either String Pointer
data Decimal
pattern Decimal :: Integer -> Integer -> Decimal
-- | A JSON Schema.
-- https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-01
data Schema
module Argo.Main
main :: IO ()
mainWith :: String -> [String] -> IO ()
getFlags :: [String] -> (([String], [String]), [Flag])
withSettings :: String -> [Flag] -> (Settings -> IO ()) -> IO ()
quote :: String -> String
version :: String
options :: [OptDescr Flag]