diff options
author | Richard Viney <richard.viney@gmail.com> | 2024-06-21 17:01:37 +1200 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2024-06-21 10:49:14 +0100 |
commit | 6a6d5adf356993031ab2e79012e436dd2567a2f9 (patch) | |
tree | a1da55c581271e0160b47e3be35211f456719099 /src/gleam_stdlib.erl | |
parent | ddd52834c46a9e8c608cbdc347a71b9ceeb361df (diff) | |
download | gleam_stdlib-6a6d5adf356993031ab2e79012e436dd2567a2f9.tar.gz gleam_stdlib-6a6d5adf356993031ab2e79012e436dd2567a2f9.zip |
Base64 encoding optimisations. Fix encoding of large bit arrays on JS.
This native JS implementation is 13-14x faster in simple benchmarks.
Diffstat (limited to 'src/gleam_stdlib.erl')
-rw-r--r-- | src/gleam_stdlib.erl | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gleam_stdlib.erl b/src/gleam_stdlib.erl index b95d9f8..2596f41 100644 --- a/src/gleam_stdlib.erl +++ b/src/gleam_stdlib.erl @@ -8,7 +8,8 @@ bit_array_int_to_u32/1, bit_array_int_from_u32/1, decode_result/1, bit_array_slice/3, decode_bit_array/1, compile_regex/2, regex_scan/2, percent_encode/1, percent_decode/1, regex_check/2, regex_split/2, - base_decode64/1, parse_query/1, bit_array_concat/1, size_of_tuple/1, + base_decode64/1, parse_query/1, bit_array_concat/1, + bit_array_base64_encode/2, size_of_tuple/1, decode_tuple/1, decode_tuple2/1, decode_tuple3/1, decode_tuple4/1, decode_tuple5/1, decode_tuple6/1, tuple_get/2, classify_dynamic/1, print/1, println/1, print_error/1, println_error/1, inspect/1, float_to_string/1, @@ -201,6 +202,9 @@ string_pop_grapheme(String) -> bit_array_concat(BitArrays) -> list_to_bitstring(BitArrays). +bit_array_base64_encode(Bin, Padding) -> + base64:encode(Bin, #{padding => Padding}). + bit_array_slice(Bin, Pos, Len) -> try {ok, binary:part(Bin, Pos, Len)} catch error:badarg -> {error, nil} |