From 6b68e5e25006bc734345ce77ede14b6e54214d23 Mon Sep 17 00:00:00 2001 From: Peter Saxton Date: Tue, 23 Jun 2020 11:17:30 +0100 Subject: add changelog and docs --- src/gleam/base.gleam | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/gleam/base.gleam b/src/gleam/base.gleam index 0b88734..b3a4651 100644 --- a/src/gleam/base.gleam +++ b/src/gleam/base.gleam @@ -7,6 +7,7 @@ external fn erl_encode64(BitString) -> String = external fn erl_decode64(String) -> Result(BitString, Nil) = "gleam_stdlib" "base_decoded4" +/// Encodes a BitString into a base 64 encoded string. pub fn encode64(input: BitString, padding: Bool) -> String { let encoded = erl_encode64(input) case padding { @@ -15,6 +16,7 @@ pub fn encode64(input: BitString, padding: Bool) -> String { } } +/// Decodes a base 64 encoded string into a BitString. pub fn decode64(encoded: String) -> Result(BitString, Nil) { let padded = case bit_string.byte_size(bit_string.from_string(encoded)) % 4 { 0 -> encoded @@ -23,12 +25,14 @@ pub fn decode64(encoded: String) -> Result(BitString, Nil) { erl_decode64(padded) } +/// Encodes a BitString into a base 64 encoded string with URL and filename safe alphabet. pub fn url_encode64(input: BitString, padding: Bool) -> String { encode64(input, padding) |> string.replace("+", "-") |> string.replace("/", "_") } +/// Decodes a base 64 encoded string with URL and filename safe alphabet into a BitString. pub fn url_decode64(encoded: String) -> Result(BitString, Nil) { encoded |> string.replace("-", "+") -- cgit v1.2.3