///|
test {
// Initialize a streaming UTF-8 decoder
let decoder = @encoding.decoder(UTF8)
// Consume byte chunks
let inputs = [b"abc", b"\xf0", b"\x9f\x90\xb0"] // UTF8(🐰) == <F09F 90B0>
inspect(decoder.consume(inputs[0]), content="abc")
inspect(decoder.consume(inputs[1]), content="")
inspect(decoder.consume(inputs[2]), content="🐰")
// Finish decoding
assert_true(decoder.finish().is_empty())
}///|
test {
// Encode a string to UTF-8
let src = "你好👀"
let bytes = @encoding.encode(UTF8, src)
inspect(
bytes,
content=(
#|b"\xe4\xbd\xa0\xe5\xa5\xbd\xf0\x9f\x91\x80"
),
)
}///|
test {
inspect(
@encoding.to_utf8_bytes('A'),
content=(
#|b"A"
),
)
}#deprecated("`MalformedError::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
fn MalformedError::to_repr(MalformedError) -> Repr#deprecated("`TruncatedError::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
fn TruncatedError::to_repr(TruncatedError) -> Reprtype Decodertest {
let inputs = [b"abc", b"\xf0", b"\x9f\x90\xb0"] // UTF8(🐰) == <F09F 90B0>
let decoder = @encoding.decoder(UTF8)
inspect(decoder.decode(inputs[0], stream=true), content="abc")
inspect(decoder.decode(inputs[1], stream=true), content="")
inspect(decoder.decode(inputs[2], stream=false), content="🐰")
}fn Decoder::decode_lossy_to(self : Decoder, input : BytesView, output : StringBuilder, stream? : Bool) -> Unitfn Decoder::decode_to(self : Decoder, input : BytesView, output : StringBuilder, stream? : Bool) -> Unit raisetest {
let decoder = @encoding.decoder(UTF8)
let buf = StringBuilder()
decoder.decode_to(b"Hello", buf)
inspect(buf.to_string(), content="Hello")
}let U_REP : Charlet inputs = [b"abc", b"\xf0", b"\x9f\x90\xb0"] // UTF8(🐰) == <F09F 90B0>
let decoder = decoder(UTF8)
inspect(decoder.consume(inputs[0]), content="abc")
inspect(decoder.consume(inputs[1]), content="")
inspect(decoder.consume(inputs[2]), content="🐰")
assert_true(decoder.finish().is_empty())test {
let src = "Hello, World!"
let encoded_bytes = @encoding.encode(UTF8, src)
assert_eq(
encoded_bytes,
Bytes::from_array([
72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33,
]),
)
}test {
let buf = Buffer()
let text = "Hello, world"
buf.write_string_utf16le(text)
inspect(buf.to_string(), content="Hello, world")
}#deprecated("Use `to_utf16le_bytes` instead")
fn to_utf16_bytes(value : Char) -> Bytesfn to_utf16be_bytes(value : Char) -> Bytesfn to_utf16le_bytes(value : Char) -> Bytesfn to_utf8_bytes(value : Char) -> Bytes#deprecated("Use `buf.write_char_utf16le(value)` instead")
fn write_utf16_char(buf : Buffer, value : Char) -> Unit#deprecated("Use `buf.write_char_utf16be(value)` instead")
fn write_utf16be_char(buf : Buffer, value : Char) -> Unit#deprecated("Use `buf.write_char_utf16le(value)` instead")
fn write_utf16le_char(buf : Buffer, value : Char) -> Unit