mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
21 lines
323 B
Rust
21 lines
323 B
Rust
// check-pass
|
|
|
|
use std::ops::Deref;
|
|
|
|
trait MyTrait {
|
|
fn do_something(&self);
|
|
fn as_str(&self) -> &str;
|
|
}
|
|
|
|
impl Deref for dyn MyTrait {
|
|
type Target = str;
|
|
fn deref(&self) -> &Self::Target {
|
|
self.as_str()
|
|
}
|
|
}
|
|
|
|
fn trait_object_does_something(t: &dyn MyTrait) {
|
|
t.do_something()
|
|
}
|
|
|
|
fn main() {}
|