Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- class ParseMLS a where
- class SerialiseMLS a where
- serialiseMLS :: a -> Put
- newtype VarInt = VarInt {}
- parseMLSStream :: Get a -> Get [a]
- parseMLSVector :: forall w a. (Binary w, Integral w) => Get a -> Get [a]
- serialiseMLSVector :: forall w a. (Binary w, Integral w) => (a -> Put) -> [a] -> Put
- parseMLSBytes :: forall w. (Binary w, Integral w) => Get ByteString
- serialiseMLSBytes :: forall w. (Binary w, Integral w) => ByteString -> Put
- serialiseMLSBytesLazy :: forall w. (Binary w, Integral w) => ByteString -> Put
- parseMLSOptional :: Get a -> Get (Maybe a)
- serialiseMLSOptional :: (a -> Put) -> Maybe a -> Put
- parseMLSEnum :: forall (w :: Type) a. (Bounded a, Enum a, Integral w, Binary w) => String -> Get a
- serialiseMLSEnum :: forall w a. (Enum a, Integral w, Binary w) => a -> Put
- data MLSEnumError
- fromMLSEnum :: (Integral w, Enum a) => a -> w
- toMLSEnum' :: forall a w. (Bounded a, Enum a, Integral w) => w -> Either MLSEnumError a
- toMLSEnum :: forall a w f. (Bounded a, Enum a, MonadFail f, Integral w) => String -> w -> f a
- encodeMLS :: SerialiseMLS a => a -> LByteString
- encodeMLS' :: SerialiseMLS a => a -> ByteString
- decodeMLS :: ParseMLS a => LByteString -> Either Text a
- decodeMLS' :: ParseMLS a => ByteString -> Either Text a
- decodeMLSWith :: Get a -> LByteString -> Either Text a
- decodeMLSWith' :: Get a -> ByteString -> Either Text a
- data RawMLS a = RawMLS {
- raw :: ByteString
- value :: a
- rawMLSSchema :: Text -> (ByteString -> Either Text a) -> ValueSchema NamedSwaggerDoc (RawMLS a)
- mlsSwagger :: Text -> NamedSchema
- parseRawMLS :: Get a -> Get (RawMLS a)
- mkRawMLS :: SerialiseMLS a => a -> RawMLS a
- traceMLS :: Show a => String -> Get a -> Get a
Documentation
class ParseMLS a where Source #
Parse a value encoded using the "TLS presentation" format.
Instances
class SerialiseMLS a where Source #
Convert a value to "TLS presentation" format.
serialiseMLS :: a -> Put Source #
Instances
An integer value serialised with a variable-size encoding.
The underlying Word32 must be strictly less than 2^30.
Instances
Arbitrary VarInt Source # | |
Enum VarInt Source # | |
Defined in Wire.API.MLS.Serialisation | |
Num VarInt Source # | |
Integral VarInt Source # | |
Defined in Wire.API.MLS.Serialisation | |
Real VarInt Source # | |
Defined in Wire.API.MLS.Serialisation toRational :: VarInt -> Rational # | |
Show VarInt Source # | |
Binary VarInt Source # | |
Eq VarInt Source # | |
Ord VarInt Source # | |
ParseMLS VarInt Source # | |
SerialiseMLS VarInt Source # | |
Defined in Wire.API.MLS.Serialisation serialiseMLS :: VarInt -> Put Source # |
parseMLSStream :: Get a -> Get [a] Source #
parseMLSBytes :: forall w. (Binary w, Integral w) => Get ByteString Source #
serialiseMLSBytes :: forall w. (Binary w, Integral w) => ByteString -> Put Source #
serialiseMLSBytesLazy :: forall w. (Binary w, Integral w) => ByteString -> Put Source #
parseMLSEnum :: forall (w :: Type) a. (Bounded a, Enum a, Integral w, Binary w) => String -> Get a Source #
Parse a positive tag for an enumeration. The value 0 is considered "reserved", and all other values are shifted down by 1 to get the corresponding enumeration index. This makes it possible to parse enumeration types that don't contain an explicit constructor for a "reserved" value.
fromMLSEnum :: (Integral w, Enum a) => a -> w Source #
toMLSEnum' :: forall a w. (Bounded a, Enum a, Integral w) => w -> Either MLSEnumError a Source #
toMLSEnum :: forall a w f. (Bounded a, Enum a, MonadFail f, Integral w) => String -> w -> f a Source #
encodeMLS :: SerialiseMLS a => a -> LByteString Source #
Encode an MLS value to a lazy bytestring.
encodeMLS' :: SerialiseMLS a => a -> ByteString Source #
decodeMLS :: ParseMLS a => LByteString -> Either Text a Source #
Decode an MLS value from a lazy bytestring. Return an error message in case of failure.
decodeMLS' :: ParseMLS a => ByteString -> Either Text a Source #
decodeMLSWith :: Get a -> LByteString -> Either Text a Source #
Decode an MLS value from a lazy bytestring given a custom parser. Return an error message in case of failure.
decodeMLSWith' :: Get a -> ByteString -> Either Text a Source #
An MLS value together with its serialisation.
This can be used whenever we need to parse an object, but at the same time retain the original serialised bytes (e.g. for signature verification, or to forward them verbatim).
RawMLS | |
|
Instances
rawMLSSchema :: Text -> (ByteString -> Either Text a) -> ValueSchema NamedSwaggerDoc (RawMLS a) Source #
A schema for a raw MLS object.
This can be used for embedding MLS objects into JSON. It expresses the object as a base64-encoded string containing the raw bytes of its native MLS serialisation.
Note that a ValueSchema
for the underlying type a
is not required.
mlsSwagger :: Text -> NamedSchema Source #
mkRawMLS :: SerialiseMLS a => a -> RawMLS a Source #