2 个版本
0.1.1 | 2024年5月25日 |
---|---|
0.1.0 | 2024年5月7日 |
#2 in #引用
每月 255 次下载
用于 21 个包 (通过 interruptible)
11KB
172 行
🧺 own
包装一个拥有或借用的值。
这允许您持有拥有或借用的值,使您的数据类型可以是 '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,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确说明,否则根据 Apache-2.0 许可证定义的,任何有意提交以包含在本作品中的贡献,均应如上双许可,无需任何附加条款或条件。
依赖项
~220KB