4 个版本
使用旧的 Rust 2015
0.1.3 | 2018年11月17日 |
---|---|
0.1.2 | 2018年8月17日 |
0.1.1 | 2018年8月14日 |
0.1.0 | 2018年8月5日 |
#2789 在 Rust 模式
26KB
572 行
refmove:库级别 by-move 引用的实验性实现
此包包含库级别 by-move 引用的实验性实现。
它将允许您使用 self: RefMove<Self>
来按值传递您的 trait 对象,甚至无需分配。
有关允许按值传递 trait 对象的另一种方法的更多信息,请参阅 #48055。
用法
借用
#![feature(nll)]
extern crate refmove;
use refmove::{Anchor, AnchorExt, RefMove};
...
// Borrowing from stack
let _: RefMove<i32> = 42.anchor().borrow_move();
// Borrowing from box
let _: RefMove<i32> = Box::new(42).anchor_box().borrow_move();
提取
#![feature(nll)]
extern crate refmove;
use refmove::{Anchor, AnchorExt, RefMove};
...
fn f(x: RefMove<String>) {
// Borrowing by dereference
println!("{}", &x as &String);
// Move out ownership
let _: String = x.into_inner();
}