LoGin fba5623183
引入intertrait库,支持trait之间的互相转换 (#395)
* 能过编译(test还没法跑)

* 初始化intertrait转换库

* update license of intertrait
2023-10-02 20:46:19 +08:00

28 lines
417 B
Rust

use intertrait::cast::*;
use intertrait::*;
#[cast_to(Greet)]
struct Data;
trait Source: CastFrom {}
trait Greet {
fn greet(&self);
}
impl Greet for Data {
fn greet(&self) {
println!("Hello");
}
}
impl Source for Data {}
#[test]
fn test_cast_to_on_struct() {
let data = Data;
let source: &dyn Source = &data;
let greet = source.cast::<dyn Greet>();
greet.unwrap().greet();
}