1use nifty_runtime::Failure;
4
5use super::borrow_context;
6use crate::context::Context;
7use crate::value::Slot;
8
9#[unsafe(no_mangle)]
14pub(crate) unsafe extern "C" fn nf_state(context: *const Context, state: u32) -> Slot {
15 unsafe { borrow_context(context) }.state(state as usize)
17}
18
19#[unsafe(no_mangle)]
24pub(crate) unsafe extern "C" fn nf_state_mut(context: *const Context, state: u32) -> *mut Slot {
25 unsafe { borrow_context(context) }.state_mut(state as usize)
27}
28
29#[unsafe(no_mangle)]
35pub(crate) unsafe extern "C" fn nf_enter(
36 context: *const Context,
37 function: u32,
38 span: u32,
39) -> bool {
40 unsafe { borrow_context(context) }.enter(function, span)
42}
43
44#[unsafe(no_mangle)]
47pub(crate) unsafe extern "C" fn nf_leave(context: *const Context) {
48 unsafe { borrow_context(context) }.leave();
50}
51
52#[unsafe(no_mangle)]
55pub(crate) unsafe extern "C" fn nf_fail_divide_by_zero(context: *const Context, span: u32) {
56 unsafe { borrow_context(context) }.fail(Failure::DivideByZero, span);
58}
59
60#[unsafe(no_mangle)]
63pub(crate) unsafe extern "C" fn nf_fail_too_large(context: *const Context, span: u32) {
64 unsafe { borrow_context(context) }.fail(Failure::TooLarge, span);
66}