Предлагается оптимизировать расширение encode для базовой конвертации base64 и предоставить следующие команды преобразования:
base64-to-latin1, latin1-to-base64, base64-to-utf8, utf8-to-base64, bytes-to-utf8, utf8-to-bytes, bytes-to-latin1, latin1-to-bytes
Также предлагается добавить команды буферизации для различных типов входных данных:
Пример команды буферизации:
[base64 ->
let i 0
let arr array:from-list 1024
let flush(encode:base64-buffer base64 arr i)
repeat(length base64 / 4 * 3)[
print array:item arr i
set i i + 1
if i > 1023[
set i(runresult flush i)
]
]
]
Входные данные должны включать соответствующий тип данных, расширение объекта массива и опциональные начальные позиции и длины.
Функция возвращает функцию обновления, которая принимает координаты чтения в качестве входных данных, обновляет расширение объекта массива и возвращает новые координаты чтения. Это позволяет выполнить задачу декодирования с минимальным использованием памяти и количеством вызовов функций.
Вход Перед тем как оставить комментарий