pub unsafe fn alloc(&mut self, slots: usize) -> Pointer {
        let (pointer, extra_capacity) = self.free.mark_first(slots);

        // increase the size of the allocation if needed.
        self.data
            .extend((0..extra_capacity).map(|_| unsafe { Slot::zero() }));
        return pointer;
    }
Allocate a pointer of a given size.
Returns the smallest first allocation that will fit the pointer.

# Safety
The allocated pointer will point to garbage data.
This call must immediately be followed by a call to [`Heap::write`].
passerine-qualm/src/heap/mod.rs