///|
fn main raise {
let value = @lib.Struct([
(1, @lib.I32(150)),
(2, @lib.Bool(true)),
(3, @lib.Binary(b"MoonBit")),
])
for protocol in [@lib.BinaryProtocol, @lib.CompactProtocol] {
let wire = @lib.encode(value, protocol)
let decoded = @lib.decode(wire, @lib.StructKind, protocol)
println("encoded bytes=\{wire.length()}, roundtrip=\{decoded==value}")
}
}