2024-04-08 19:45:13 -06:00

32 lines
628 B
Plaintext

const std = #import("std");
const expect = std.testing.expect;
const assert = std.assert;
const Foo = struct(.{ .sliceable = true }) {
pointer: [&]u8,
length: u32,
capacity: u32,
const add = fn (foo: &Foo, item: u8) void {
const index = foo.length;
assert(index < foo.capacity);
foo.length += 1;
foo[index] = item;
}
};
const main = fn () *!void {
var foo = [1]u8{0};
var s = Foo{
.pointer = foo.&,
.length = 0,
.capacity = 1,
};
s.add(5);
try expect(s.length == 1);
try expect(foo[0] == 5);
try expect(s[0] == 5);
}