1use crate::value::{self, Slot, TypeDesc};
4
5#[unsafe(no_mangle)]
7pub(crate) extern "C" fn nf_retain(slot: Slot, ty: &TypeDesc) {
8 value::retain(slot, ty);
9}
10
11#[unsafe(no_mangle)]
12pub(crate) extern "C" fn nf_release(slot: Slot, ty: &TypeDesc) {
13 value::release(slot, ty);
14}
15
16#[unsafe(no_mangle)]
18pub(crate) extern "C" fn nf_equal(a: Slot, b: Slot, ty: &TypeDesc) -> bool {
19 value::equal(a, b, ty)
20}
21
22#[unsafe(no_mangle)]
27pub(crate) unsafe extern "C" fn nf_store(place: *mut Slot, value: Slot, ty: &TypeDesc) {
28 let place = unsafe { &mut *place };
30 value::release(std::mem::replace(place, value), ty);
31}