mirror of https://github.com/rust-lang/rust
28 lines
384 B
Rust
28 lines
384 B
Rust
//@ run-pass
|
|
|
|
trait Get {
|
|
type Value;
|
|
fn get(&self) -> &<Self as Get>::Value;
|
|
fn grab(&self) -> &<Self as Get>::Value {
|
|
self.get()
|
|
}
|
|
}
|
|
|
|
struct Struct {
|
|
x: isize,
|
|
}
|
|
|
|
impl Get for Struct {
|
|
type Value = isize;
|
|
fn get(&self) -> &isize {
|
|
&self.x
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let s = Struct {
|
|
x: 100,
|
|
};
|
|
assert_eq!(*s.grab(), 100);
|
|
}
|