[go: up one dir, main page]

alloca 0.3.2

Mostly safe wrapper for alloca
Documentation
use crate::with_alloca;
use core::mem::MaybeUninit;
#[test]
fn test_create() {
    let x = with_alloca(4096, |_| {
        assert!(true);
        42
    });
    assert_eq!(x, 42);
}

#[test]
fn test_write() {
    let x = with_alloca(4096, |memory| {
        memory[0] = MaybeUninit::new(42);
        memory[1] = MaybeUninit::new(3);
        memory[3072] = MaybeUninit::new(4);
        unsafe {
            assert_eq!(memory[0].assume_init(), 42);
            assert_eq!(memory[1].assume_init(), 3);
            assert_eq!(memory[3072].assume_init(), 4);
            memory[0].assume_init() + memory[1].assume_init() + memory[3072].assume_init()
        }
    });
    assert_eq!(x, 42 + 3 + 4);
}