trpl-zh-cn/listings/ch15-smart-pointers/listing-15-10/src/main.rs

28 lines
372 B
Rust
Raw Normal View History

2022-02-06 16:43:51 +08:00
// ANCHOR: here
use std::ops::Deref;
impl<T> Deref for MyBox<T> {
type Target = T;
fn deref(&self) -> &Self::Target {
&self.0
}
}
// ANCHOR_END: here
struct MyBox<T>(T);
impl<T> MyBox<T> {
fn new(x: T) -> MyBox<T> {
MyBox(x)
}
}
fn main() {
let x = 5;
let y = MyBox::new(x);
assert_eq!(5, x);
assert_eq!(5, *y);
}