abi_stable 0.11.3

For doing Rust-to-Rust ffi,writing libraries loaded at program startup.
Documentation
use super::immutable_ref;

use std::ptr::NonNull;

#[test]
fn teest_to_nonnull() {
    unsafe {
        let x = immutable_ref::to_nonnull(&3i32);
        assert_eq!(*x.cast::<u32>().as_ref(), 3u32);
    }
}

#[test]
fn teest_from_nonnull() {
    unsafe {
        let x = immutable_ref::from_nonnull::<&_>(NonNull::from(&5i32));
        assert_eq!(*x, 5i32);
    }
}

#[test]
fn teest_to_raw_ptr() {
    unsafe {
        let x = immutable_ref::to_raw_ptr(&8i32);
        assert_eq!(*x.cast::<u32>(), 8u32);
    }
}

#[test]
fn teest_from_raw_ptr() {
    unsafe {
        let x = immutable_ref::from_raw_ptr::<&_>(&13i32 as *const i32);
        assert_eq!(*x.unwrap(), 13i32);
    }
    unsafe {
        let x = immutable_ref::from_raw_ptr::<&_>(std::ptr::null::<i32>());
        assert!(x.is_none());
    }
}