31 lines
430 B
Rust
31 lines
430 B
Rust
// run-pass
|
|
|
|
fn f(x: Box<isize>) {
|
|
let y: &isize = &*x;
|
|
println!("{}", *x);
|
|
println!("{}", *y);
|
|
}
|
|
|
|
trait Trait {
|
|
fn printme(&self);
|
|
}
|
|
|
|
struct Struct;
|
|
|
|
impl Trait for Struct {
|
|
fn printme(&self) {
|
|
println!("hello world!");
|
|
}
|
|
}
|
|
|
|
fn g(x: Box<dyn Trait>) {
|
|
x.printme();
|
|
let y: &dyn Trait = &*x;
|
|
y.printme();
|
|
}
|
|
|
|
fn main() {
|
|
f(Box::new(1234));
|
|
g(Box::new(Struct) as Box<dyn Trait>);
|
|
}
|