AsnEmbed typed ASN.1 grammars in OCaml
Skip the notation part of Abstract Syntax Notation, and embed the abstract syntax directly in OCaml.
References
v0.3.2 — homepage
module OID : sig ... endObject identifiers.
module S : sig ... endASN.1 Abstract Syntax.
val ber : encodingber is ASN.1 Basic Encoding Rules (BER).
val der : encodingder is ASN.1 Distinguished Encoding Rules (DER).
codec enc asn represents the syntax asn encoded under the rules enc.
This function performs work up-front, and is generally expected to be called in the static context on statically known syntaxes.
val encode : 'a codec -> 'a -> stringencode codec x is the encoding of x, using codec.
val encode_into : 'a codec -> 'a -> int * (bytes -> unit)encode_into codec x is the pair (n, f), where n is the length of x encoded with codec, and f is a function that will write the encoded x to the first n bytes of the provided bytes.
val pp_error : Stdlib.Format.formatter -> error -> unitpp_error ppf err pretty-prints err on ppf.
decode codec cs is the pair (x, cs'), where x is the result of decoding the prefix of cs with codec and cs' are the trailing bytes, or an error.
val random : 'a t -> 'arandom asn is a random inhabitant of 'a.