Brr.Base64base64 codec.
As performed by btoa and atob functions.
Warning. These functions are slightly broken API-wise. They are easy to use incorrectly and involve a lot of data copies to use them correctly. Use only for quick hacks. The detour via the Base64.data type is provided to hopefully prevent people from shooting themselves in the foot.
data_utf_8_of_jstr s is the UTF-16 encoded JavaScript string s as UTF-8 binary data. This is to be used with encode which results in a base64 encoding of the UTF-8 representation of s.
val data_utf_8_to_jstr : data -> (Jstr.t, Jv.Error.t) Stdlib.resultdata_utf_8_to_jstr d decodes the UTF-8 binary data d to an UTF-16 encoded JavaScript string.
data_of_binary_jstr d is the binary data represented by the JavaScript binary string d. Note that this does not check that d is a binary string, encode will error if that's not the case. Use Tarray.to_binary_jstr to convert typed arrays to binary strings.
data_to_jstr d is a JavaScript binary string from d. Use Tarray.of_binary_jstr to convert binary strings to typed arrays.
val encode : data -> (Jstr.t, Jv.Error.t) Stdlib.resultencode d encodes the binary data d to base64. This errors if d was constructed with data_of_binary_jstr from an invalid JavaScript binary string.
val decode : Jstr.t -> (data, Jv.Error.t) Stdlib.resultdecode s decodes the base64 encoded string s to a binary string. Errors if s is not only made of US-ASCII characters or is not well formed Base64.