#refcell #no-alloc

no-std own_or_borrow

统一对拥有或RefCell借用数据的引用

1 个不稳定版本

0.1.0 2024年6月30日

#1516嵌入式开发

EUPL-1.2

15KB
317

拥有或借用您的数据。

GitHub Workflow Status codecov

此crate提供了一种名为OwnOrBorrow的类型,它封装了拥有的数据或对其的RefCell借用引用。借用时类似于Cow

示例

您可以从一个拥有的值创建一个OwnOrBorrow

use own_or_borrow::OwnOrBorrow;

fn example() {
    let mut value = OwnOrBorrow::own(42);

    assert_eq!(value.borrow().as_ref(), &42);
    assert_eq!(value.borrow_mut().as_mut(), &mut 42);
}

您可以从一个RefCell创建一个OwnOrBorrow并将其以相同的方式处理

use own_or_borrow::OwnOrBorrow;
use core::cell::RefCell;

fn example() {
    let refcell = RefCell::new(42);
    let mut value = OwnOrBorrow::from(refcell);

    assert_eq!(value.borrow().as_ref(), &42);
    assert_eq!(value.borrow_mut().as_mut(), &mut 42);
}

依赖项

~160KB