#bow #borrow #owned #pointer #cow

no-std boow

Borrow Or oWned 智能指针。Cow 的替代品。

4 个版本

使用旧版 Rust 2015

0.1.3 2018年4月10日
0.1.2 2018年4月10日
0.1.1 2018年4月10日
0.1.0 2018年4月10日

Rust 模式 中排名 #2800

Download history 726/week @ 2023-10-28 552/week @ 2023-11-04 514/week @ 2023-11-11 634/week @ 2023-11-18 667/week @ 2023-11-25 639/week @ 2023-12-02 768/week @ 2023-12-09 346/week @ 2023-12-16 280/week @ 2023-12-23 261/week @ 2023-12-30 594/week @ 2024-01-06 473/week @ 2024-01-13 413/week @ 2024-01-20 426/week @ 2024-01-27 780/week @ 2024-02-03 885/week @ 2024-02-10

每月下载量 2,558
9 个 crate 中使用(直接使用 4 个)

MIT 许可证

7KB
119 代码行

借出-或-拥有

提供借出-或-拥有智能指针。

为不需要封装类型实现 Clone 特性的情况替代 Cow

如果你想要一个类似 Cow 的东西,但你的类型无法克隆,请使用此 crate。

你可以在这里找到 rustdoc 链接

如何使用

extern crate boow;
use boow::Bow;
// This struct contains a type for which we cannot know at compile time
// whether it will be owned or borrowed.
struct MyStruct<'a> {
    borrowed_or_owned: Bow<'a, InnerStruct>,
}
struct InnerStruct {
    _stuff: String,
}
impl<'a> MyStruct<'a> {
    // Use borrowed value
    fn from_borrowed(inner: &'a InnerStruct) -> Self {
        Self { borrowed_or_owned: Bow::Borrowed(inner) }
    }
    // Use owned value
    fn from_owned(inner: InnerStruct) -> Self {
        Self { borrowed_or_owned: Bow::Owned(inner) }
    }
}

no_std

如果你有兴趣使用此 crate 并与 no_stdalloc crate 一起,请在 Cargo.toml 中添加以下内容

[dependencies]
boow = { version = "0.1", default-features = false }

依赖

~8KB