The type for input sources. With a `Manual source the client must provide input with src.
val src : decoder -> Stdlib.Bytes.t -> int -> int -> unitsrc d s j l provides d with l bytes to read, starting at j in s. This byte range is read by calls to decode with d until `Await is returned. To signal the end of input, call the function with l = 0.
decode d is: 
`Awaitifdhas a`Manualinput source and awaits for more input. The client must usesrcto provide it.`Endif the end of input was reached`Malformed bytesif thebytessequence is malformed according to the decoded base64 encoding scheme. If you are interested in a best-effort decoding, you can still continue to decode after an error until the decode synchronizes again on valid bytes.`Flush dataif adatasequence value was decoded.`Wrong_paddingif decoder retrieve a wrong padding at the end of the input.
Note. Repeated invocation always eventually returns `End, even in case of errors.
val decoder_byte_count : decoder -> intdecoder_byte_count d is the number of characters already decoded on d (included malformed ones). This is the last decode's end output offset counting from beginning of the stream.
val decoder_dangerous : decoder -> booldecoder_dangerous d returns true if encoded input does not respect the 80-columns rule. If your are interested in a best-effort decoding you can still continue to decode even if decoder_dangerous d returns true. Nothing grow automatically internally in this state.
The type for output destinations. With a `Manual destination the client must provide output storage with dst.
encode e v: is 
`Partialiffehas a`Manualdestination and needs more output storage. The client must usedstto provide a new buffer and then callencodewith`Awaituntil`Okis returned.`Okwhen the encoder is ready to encode a new`Charor`End
For `Manual destination, encoding `End always return `Partial, the client should continue as usual with `Await until `Ok is returned at which point dst_rem encoder is guaranteed to be the size of the last provided buffer (i.e. nothing was written).
Raises. Invalid_argument if a `Char or `End is encoded after a `Partial encode.
val dst : encoder -> Stdlib.Bytes.t -> int -> int -> unit