diff --git a/src/at/internal/ascii.gleam b/src/at/internal/ascii.gleam new file mode 100644 index 0000000..0a17a31 --- /dev/null +++ b/src/at/internal/ascii.gleam @@ -0,0 +1,6 @@ +/// A more-efficient version of `string.slice` that relies on the input string +/// being made up of only ASCII characters. +/// +@external(erlang, "binary", "part") +@external(javascript, "./ascii_ffi.mjs", "slice") +pub fn slice(string: String, at from: Int, length length: Int) -> String diff --git a/src/at/internal/ascii_ffi.mjs b/src/at/internal/ascii_ffi.mjs new file mode 100644 index 0000000..5540875 --- /dev/null +++ b/src/at/internal/ascii_ffi.mjs @@ -0,0 +1,3 @@ +export function slice(string, from, length) { + return string.slice(from, from + length); +}