/development/std/ptr.nct
ptr.nct
//! Nocter raw pointer and address conversion API.
//!
//! Raw pointers are address-carrying values. They do not own memory, do not
//! extend lifetimes, and do not grant dereference permission. These declarations
//! are target-independent core primitives, separate from OS target primitives
//! such as `std/os.syscall0`.
pub primitive addr<T>(pointer: *T): usize
pub primitive from_ref<T>(value: &T): *T from value
pub primitive from_ref_mut<T>(value: &+T): *T from value
// Restricted API: callable only from modules inside the active Nocter home std/.
// User project modules must not call these functions.
pub(nocter) primitive from_addr<T>(address: usize): *T
pub(nocter) primitive pointee_size<T>(pointer: *T): usize
pub(nocter) primitive pointee_align<T>(pointer: *T): usize
pub(nocter) primitive copy_str_to_ptr(destination: *u8, offset: usize, text: &str): void
pub(nocter) primitive copy_ptr_to_ptr(destination: *u8, source: *u8, byte_count: usize): void
pub(nocter) primitive store_u8_to_ptr(destination: *u8, offset: usize, value: u8): void
pub(nocter) primitive store_value_to_ptr<T>(destination: *T, offset: usize, value: T): void
pub(nocter) primitive drop_value_at_ptr<T>(pointer: *T, offset: usize): void
pub(nocter) primitive take_value_at_ptr<T>(pointer: *T, offset: usize): T
pub(nocter) primitive str_from_raw_parts(pointer: *u8, len: usize): &str
pub(nocter) primitive slice_from_raw_parts(pointer: *u8, len: usize): &[u8]
pub(nocter) primitive slice_from_raw_parts_mut(pointer: *u8, len: usize): &+[u8]
pub(nocter) primitive slice_from_raw_parts_value<T>(pointer: *T, len: usize): &[T]
pub(nocter) primitive slice_from_raw_parts_value_mut<T>(pointer: *T, len: usize): &+[T]