///|
pub fn convert_to_uint8_array(
data : String,
force_even? : Bool = false,
) -> Array[Byte] {
let data_len = data.length()
let is_odd = if data_len == 0 {
false
} else {
!force_even && data.code_unit_at(data_len - 1).to_int() % 256 == 0
}
let out = Array::new(capacity=data_len * 2 - (if is_odd { 1 } else { 0 }))
for i in 0..> 8).to_byte())
if !is_odd || i < data_len - 1 {
out.push((current % 256).to_byte())
}
}
out
}
///|
pub fn convert_from_uint8_array(data : Array[Byte]) -> String {
let out = StringBuilder::new(size_hint=data.length() / 2 + 1)
let pairs = data.length() / 2
for i in 0.. Array[Byte] {
let compressed = compress(uncompressed)
let out = Array::new(capacity=compressed.length() * 2)
for i in 0..> 8).to_byte())
out.push((current % 256).to_byte())
}
out
}
///|
pub fn decompress_from_uint8_array(compressed : Array[Byte]) -> String? {
decompress(convert_from_uint8_array(compressed))
}