Rust项目正在推进41个目标,其中13个为旗舰目标。更新内容包括禁止手动实现#[pin_v2]类型的Unpin,讨论虚拟位置设计的关键问题,以及实现新特性如Reborrow和CoerceShared。团队还在处理多个RFC,改进编译器和Cargo的功能,确保Rust在Linux内核中的稳定性。
这篇文章讲解了在Rust中的Pin/Unpin的概念,Pin是一种指针,用于处理自引用结构,Unpin是一个Trait,标记类型在被固定后可以安全地移动。为了处理自引用结构,需要使用Pin来防止移动。在拥有所有权的Future进行await时,编译器可以处理固定。否则,需要使用pin!或Box::pin来处理固定。大多数结构是Unpin的,但async fn和async {}总是产生!Unpin结构。
2019年2月28号,Rust 1.33版发布,增加了新的pinning API,主要包括这几个: std::pin::Pin std::marker::Unpin std::marker::PhantomPinned impl !Unpin for...
完成下面两步后,将自动完成登录并继续当前操作。