1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
trait Foo {
fn number(&self) -> i32;
}
struct A;
impl Foo for A {
fn number(&self) -> i32 {
0
}
}
struct B;
impl Foo for B {
fn number(&self) -> i32 {
1
}
}
#[enum_delegate::implement{
Foo,
trait Foo {
fn number(&self) -> i32;
}
}]
enum AllFoos {
A(A),
B(B),
}
#[test]
fn test_implementation() {
let a = AllFoos::A(A);
assert_eq!(a.number(), 0);
let b = AllFoos::B(B);
assert_eq!(b.number(), 1);
}