ein_ffi/cps/stack.rs
1use std::alloc::{alloc, Layout};
2
3const DEFAULT_ALIGNMENT: usize = 8;
4
5#[repr(C)]
6pub struct Stack {
7 base_pointer: *mut u8,
8 size: usize,
9 capacity: usize,
10}
11
12impl Stack {
13 pub fn new(capacity: usize) -> Self {
14 Self {
15 base_pointer: unsafe {
16 alloc(Layout::from_size_align(capacity, DEFAULT_ALIGNMENT).unwrap())
17 },
18 size: 0,
19 capacity,
20 }
21 }
22}