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
40
41
42
43
44
45
46
47
48
49
50
51
/*!
Macros for enum variant access.
The following enum definition is used as an example in the forms below to demonstrate
the generated code.
```rust
pub struct Address {
// private fields ...
}
pub enum TypedAddress {
Home(Address),
Work(Address),
Unparsed(String),
XRef(u64),
Unknown
}
```
## Summary
| Macro | variant name | keywords | type | generated signature |
|-------------------------|--------------|----------|------|------------------------------------------------------|
| `impl_from_for_variant` | Home | | Address | `impl From<Address> for TypedAddress {}` |
| `impl_from_for_variant` | Home | into | Address | `impl<T: Into<Address>> From<T> for TypedAddress {}` |
| `is_variant!` | Home | | Address | `const fn is_home(&self) -> bool` |
| `is_variant!` | Unparsed | | () | `const fn is_unparsed(&self) -> bool` |
| `is_variant!` | Unknown | | () | `const fn is_unknown(&self) -> bool` |
| `as_variant!` | Home | | Address | `const fn as_address(&self) -> Option<&Address>` |
| `as_variant!` | UnParsed | | String | `const fn as_unparsed(&self) -> Option<&String>` |
| `as_variant!` | BadlyFormed | value | () | `const fn as_unparsed(&self) -> Option<Error>` |
| `as_variant!` | Unknown | | | `const fn as_unknown(&self) -> Option<()>` |
| `as_variant!` | Unknown | | () | `const fn as_unknown(&self) -> Option<()>` |
| `as_variant!` | XRef | | u64 | `const fn as_x_ref(&self) -> Option<&u64>` |
| `as_variant!` | XRef | copy | u64 | `const fn as_x_ref(&self) -> Option<u64>` |
*/
pub use ;
pub use is_as_variant;
pub use impl_from_for_variant;