That's a pretty nasty requirement on top of an allocator protocol; I wouldn't want to use it, or debug it for that matter, yikes.
And you don't need to store the size. The slab allocator doesn't store any information except how far into the current slab it's already dished out memory.
And you don't need to store the size. The slab allocator doesn't store any information except how far into the current slab it's already dished out memory.