unique-rc

Crates.iounique-rc
lib.rsunique-rc
version0.2.4
created_at2025-06-02 23:11:21.036779+00
updated_at2025-07-11 03:32:30.169128+00
descriptionUnique owner Rc, like Box, can Send and DerefMut
homepage
repositoryhttps://github.com/A4-Tacks/unique-rc-rs
max_upload_size
id1698456
size27,110
A4-Tacks (A4-Tacks)

documentation

README

Unique owner Rc, like Box, can Send and DerefMut

Example

use std::{rc::Rc, thread::spawn};
use unique_rc::UniqRc;

let rc = Rc::new("foo".to_owned());
let weak = Rc::downgrade(&rc);

assert_eq!(weak.upgrade(), Some(Rc::new("foo".to_owned())));

let urc = UniqRc::new(rc);

spawn(move || {
    assert_eq!(*urc, "foo");
}).join().unwrap();

assert_eq!(weak.upgrade(), None);

Like a Box, DerefMut

use unique_rc::UniqRc;

let mut unique_rc = UniqRc::new_value(3);
*unique_rc += 1;
assert_eq!(*unique_rc, 4);

Safety

  • miri test passed
Commit count: 12

cargo fmt