トレイト
トレイトのメソッドにおけるライフタイムのアノテーションは、基本的には関数に似ています。implにもライフタイムのアノテーションがあることに注意してください。
// ライフタイムのアノテーションつき構造体
#[derive(Debug)]
struct Borrowed<'a> {
x: &'a i32,
}
// ライフタイムのアノテーションつきimpl
impl<'a> Default for Borrowed<'a> {
fn default() -> Self {
Self {
x: &10,
}
}
}
fn main() {
let b: Borrowed = Default::default();
println!("b is {:?}", b);
}