Caller owns returned memory.
pub fn encode(allocator: std.mem.Allocator, value: anytype) ![]u8
pub fn encode(allocator: std.mem.Allocator, value: anytype) ![]u8 {
var encoder = Encoder.init(allocator);
defer encoder.deinit();
try encoder.any(value);
return try encoder.buffer.toOwnedSlice();
}