X-Git-Url: https://git.distorted.org.uk/~mdw/mLib/blobdiff_plain/82fc9c74a76f4bfa7cbbb60571ec7cabafa5859f..8d372122ebab7e141ec3dd357c7673f7413f19ea:/codec/codec.3 diff --git a/codec/codec.3 b/codec/codec.3 index fd797c5..6f2ccd8 100644 --- a/codec/codec.3 +++ b/codec/codec.3 @@ -18,6 +18,44 @@ codec \- binary encoding and decoding .B "#include " .B "#include " +.B "#define CDCF_LOWERC ..." +.B "#define CDCF_IGNCASE ..." +.B "#define CDCF_NOEQPAD ..." +.B "#define CDCF_IGNEQPAD ..." +.B "#define CDCF_IGNEQMID ..." +.B "#define CDCF_IGNZPAD ..." +.B "#define CDCF_IGNNEWL ..." +.B "#define CDCF_IGNINVCH ..." +.B "#define CDCF_IGNSPC ..." +.B "#define CDCF_IGNJUNK ..." + +.ta 2n +.B "enum {" +.B " CDCERR_OK = ...," +.B " CDCERR_INVCH = ...," +.B " CDCERR_INVEQPAD = ...," +.B " CDCERR_INVZPAD = ..." +.B "};" + +.B "typedef struct {" +.B " const char *name;" +.ta 2n +\w'\fBcodec *(*encoder)('u +.BI " codec *(*encoder)(unsigned " flags , +.BI " const char *" indent ", unsigned " maxlen ); +.BI " codec *(*decoder)(unsigned " flags ); +.B " ...\&" +.B "} codec_class;" + +.B "typedef struct {" +.B " const codec_ops *ops;" +.B "} codec;" + +.B "typedef struct {" +.B " const codec_class *c;" +.BI " int (*code)(codec *" c ", const void *" p ", size_t " sz ", dstr *" d ); +.BI " void (*destroy)(codec *" c ); +.B "} codec_ops;" + .B "codec_class null_codec_class;" .B "codec_class base64_class, file64_class, base64url_class;" .B "codec_class base32_class, base32hex_class;"