praborrow-core

Crates.iopraborrow-core
lib.rspraborrow-core
version1.2.2
created_at2026-01-09 15:07:31.180656+00
updated_at2026-01-14 03:30:00.104791+00
descriptionCore primitives for PraBorrow. Implements Sovereign for distributed ownership enforcement.
homepage
repositoryhttps://github.com/ireddragonicy/PraBorrow
max_upload_size
id2032221
size33,576
Ndik (IRedDragonICY)

documentation

README

Praborrow Core

English | Indonesia

Core primitives for the PraBorrow distributed systems framework. This crate provides the foundational types for enforcing sovereign ownership semantics across network boundaries.

Sovereign

The Sovereign<T> wrapper implements a distinct state machine for data ownership:

  • Domestic: Data is local and accessible via Deref.
  • Exiled: Data has been moved to a remote node. Access attempts trigger a panic (or return Err with try_get).

Usage

use praborrow_core::{Sovereign, SovereigntyError};

let data = Sovereign::new(42);

// Access allowed (Domestic)
assert_eq!(*data, 42);

// Safe access with error handling (v0.5+)
assert!(data.try_get().is_ok());

// Transition state
data.annex().expect("Failed to annex resource");

// Graceful error handling instead of panic
match data.try_get() {
    Ok(_) => unreachable!(),
    Err(SovereigntyError::ForeignJurisdiction) => println!("Exiled!"),
}

Thread Safety

Uses AtomicU8 for state tracking, ensuring Send + Sync compliance where T: Send + Sync.

Commit count: 113

cargo fmt