2 files changed, 39 insertions(+), 45 deletions(-)
M src/bare.zig
D src/main.zig
M src/bare.zig => src/bare.zig +39 -0
@@ 511,3 511,42 @@ test "round trip union with void member" {
const res = try d.decode(U);
try std.testing.expectEqual(res, U{ .Hello = 123 });
}
+
+test "README example" {
+ const Foo = union(enum) {
+ x: u64,
+ y: []const u8,
+ z: void,
+ };
+
+ const Bar = struct {
+ a: f32,
+ b: u8,
+ c: Foo,
+ };
+
+ const x = Bar{
+ .a = 3.14,
+ .b = 2,
+ .c = .{ .y = "hello" },
+ };
+
+ var buf: [12]u8 = undefined;
+ var fbs = io.fixedBufferStream(&buf);
+
+ var reader = fbs.reader();
+ var writer = fbs.writer();
+
+ var e = encoder(writer);
+ try e.encode(x);
+
+ try fbs.seekTo(0);
+
+ var d = decoder(std.testing.allocator, reader);
+ defer d.deinit();
+
+ const y = try d.decode(Bar);
+
+ std.log.info("x: {}", .{x});
+ std.log.info("y: {}", .{y});
+}
D src/main.zig => src/main.zig +0 -45
@@ 1,45 0,0 @@
-const std = @import("std");
-const fs = std.fs;
-const io = std.io;
-const assert = std.debug.assert;
-const bare = @import("bare");
-const decoder = bare.decoder;
-const encoder = bare.encoder;
-
-pub fn main() !void {
- var mem: [0x10000]u8 = undefined;
- var fba = std.heap.FixedBufferAllocator.init(&mem);
- var allocator = fba.allocator();
-
- const Foo = union(enum) {
- x: u64,
- y: []const u8,
- z: void,
- };
-
- const Bar = struct {
- a: f32,
- b: u8,
- c: Foo,
- };
-
- const x = Bar{
- .a = 3.14,
- .b = 2,
- .c = .{ .y = "hello" },
- };
-
- var buf: [12]u8 = undefined;
- var fbs = io.fixedBufferStream(&buf);
- var reader = fbs.reader();
- var writer = fbs.writer();
-
- var e = encoder(writer);
- try e.encode(x);
- try fbs.seekTo(0);
- var d = decoder(allocator, reader);
- defer d.deinit();
- const y = try d.decode(Bar);
- std.log.info("x: {}", .{x});
- std.log.info("y: {}", .{y});
-}