mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2025-02-25 05:42:18 +08:00
28 lines
372 B
Rust
28 lines
372 B
Rust
|
// 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);
|
||
|
}
|