本文簡要介紹rust語言中 std::pin::Pin.as_mut
的用法。
用法
pub fn as_mut(&mut self) -> Pin<&mut <P as Deref>::Target>
從此固定指針獲取固定的可變引用。
這是從 &mut Pin<Pointer<T>>
到 Pin<&mut T>
的通用方法。這是安全的,因為作為 Pin::new_unchecked
合同的一部分,指針對象在 Pin<Pointer<T>>
創建後不能移動。 Pointer::DerefMut
的 “Malicious” 實現同樣被 Pin::new_unchecked
的合同排除在外。
在對使用固定類型的函數進行多次調用時,此方法很有用。
示例
use std::pin::Pin;
impl Type {
fn method(self: Pin<&mut Self>) {
// do something
}
fn call_method_twice(mut self: Pin<&mut Self>) {
// `method` consumes `self`, so reborrow the `Pin<&mut Self>` via `as_mut`.
self.as_mut().method();
self.as_mut().method();
}
}
相關用法
- Rust Pin.as_mut用法及代碼示例
- Rust Pin.new_unchecked用法及代碼示例
- Rust PidFd用法及代碼示例
- Rust PanicInfo.payload用法及代碼示例
- Rust Path.components用法及代碼示例
- Rust PathBuf.with_capacity用法及代碼示例
- Rust Poll.map用法及代碼示例
- Rust Peekable.peek用法及代碼示例
- Rust Path.is_symlink用法及代碼示例
- Rust Poll.map_ok用法及代碼示例
- Rust Pointer用法及代碼示例
- Rust Path.canonicalize用法及代碼示例
- Rust PartialOrd.partial_cmp用法及代碼示例
- Rust Path.is_relative用法及代碼示例
- Rust Path.file_stem用法及代碼示例
- Rust PermissionsExt.set_mode用法及代碼示例
- Rust Path.to_string_lossy用法及代碼示例
- Rust Path.display用法及代碼示例
- Rust PathBuf.into_os_string用法及代碼示例
- Rust Peekable.next_if用法及代碼示例
- Rust PanicInfo用法及代碼示例
- Rust PathBuf.pop用法及代碼示例
- Rust Path.ancestors用法及代碼示例
- Rust Path用法及代碼示例
- Rust Path.is_dir用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::pin::Pin.as_mut。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。