Do you have the patience to wait until your mud settles and the water is clear?
— Lao Tzu
Memory Model
NAME wyzer-memory - Perceus reference counting and linear types
DESCRIPTION Wyzer guarantees memory safety through static analysis and Perceus reference counting, eliminating the need for a garbage collector or complex borrow annotations.
SYNOPSIS: IN-PLACE MUTATION
fn update_list(list: [u32]) -> [u32] {
list.push(42)
}
PERCEUS DETAILS
- Static RC Analysis: The compiler statically tracks reference counts.
- In-Place Mutation: If a value’s reference count is exactly
1, mutations occur in-place without heap allocations or copies.
SYNOPSIS: LINEAR TYPES
let socket = net::open("127.0.0.1:80");
net::send(socket, data);
LINEAR TYPE DETAILS
- Exact-Once Rule: Resources marked as linear (e.g., sockets) must be consumed exactly once.
- Consumption: Passing a linear resource to a function (like
send) consumes it. Subsequent accesses result in a compile-time error.