Techcable / refcell-lock-api

A single-threaded implementation of lock_api for RefCell, to alllow abstracting between single-threaded & multi-threaded code

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

refcell-lock-api docs.rs crates.io

An single-threaded implementation of lock_api using a RefCell.

This is primarily intended to allow abstracting over single-threaded and multi-threaded code.

Example

use cell_lock_api::CellRwLock;
fn main() {
    let lock = CellRwLock::new(vec![7i32]);
    {
        let guard = lock.read();
        assert_eq!(*guard, vec![7]);
    }
    {
        let mut guard = lock.write();
        guard.push(18);
        guard.push(19);
    }
    assert_eq!(lock.into_inner(), vec![7, 18, 19])
}

About

A single-threaded implementation of lock_api for RefCell, to alllow abstracting between single-threaded & multi-threaded code


Languages

Language:Rust 100.0%