2 个版本

0.1.1 2024年5月25日
0.1.0 2024年5月7日

#2 in #引用

Download history 113/week @ 2024-05-04 23/week @ 2024-05-11 68/week @ 2024-05-18 289/week @ 2024-05-25 128/week @ 2024-06-01 62/week @ 2024-06-08 55/week @ 2024-06-15 69/week @ 2024-06-22 12/week @ 2024-06-29 22/week @ 2024-07-06 81/week @ 2024-07-13 46/week @ 2024-07-20 80/week @ 2024-07-27 61/week @ 2024-08-03 65/week @ 2024-08-10 49/week @ 2024-08-17

每月 255 次下载
用于 21 个包 (通过 interruptible)

MIT/Apache

11KB
172

🧺 own

Crates.io docs.rs CI Coverage Status

包装一个拥有或借用的值。

这允许您持有拥有或借用的值,使您的数据类型可以是 'static'temporary

有一个 OwnedOrRef::reborrow 方法,允许以较短的生存期借用值。

用法

将以下内容添加到 Cargo.toml

own = "0.1.1"

示例

use own::OwnedOrRef;

fn print(name: OwnedOrRef<'_, String>) {
    println!("{}", *name);
}

fn main() {
    let name = String::from("owned");
    print(name.into());

    let name = &String::from("borrowed");
    print(name.into());
}
use own::OwnedOrMutRef;

fn make_uppercase(name: &mut OwnedOrMutRef<'_, String>) {
    name.make_ascii_uppercase();
}

fn main() {
    let name = String::from("owned");
    let mut owned = name.into();
    make_uppercase(&mut owned);
    assert_eq!("OWNED", *owned);

    let name = &mut String::from("borrowed");
    let mut borrowed  = name.into();
    make_uppercase(&mut borrowed);
    assert_eq!("BORROWED", *borrowed);
}

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确说明,否则根据 Apache-2.0 许可证定义的,任何有意提交以包含在本作品中的贡献,均应如上双许可,无需任何附加条款或条件。

依赖项

~220KB