py32f030_hal 0.1.0

Peripheral Hal Crate for Puya's PY32F030 microcontroller
1
2
3
4
5
6
7
8
9
10
11
12
use alloc::boxed::Box;

pub fn register(closure: &'static mut Option<*const dyn Fn()>, f: Box<dyn Fn()>) {
    unsafe {
        if let Some(old) = *closure {
            *closure = None;
            let _ = alloc::boxed::Box::from_raw(old as *mut dyn Fn());
        }
        let raw = alloc::boxed::Box::into_raw(f);
        *closure = Some(raw)
    }
}