/*
* Copyright (c) Huawei Technologies Co., Ltd. 2024-2024. All rights reserved.
*/
package cbor4cj
import std.io.OutputStream
public class UnicodeStringEncoder <: AbstractEncoder<UnicodeString> {
public init(encoder: CborEncoder, outputStream: OutputStream) {
super(encoder, outputStream)
}
public override func encode(dataItem: UnicodeString): Unit {
let string = dataItem.getString()
if (dataItem.isChunked()) {
encodeTypeChunked(MajorType.UNICODE_STRING)
if (string.isNone() == false) {
encode(UnicodeString(string))
}
} else if (string.isNone()) {
encoder.getOrThrow().encode(SimpleValue.NULL)
} else {
let bytes: Array<UInt8>
bytes = string.getOrThrow().toArray() // StandardCharsets.UTF_8)
encodeTypeAndLength(MajorType.UNICODE_STRING, bytes.size)
write(bytes)
}
}
}