## [`ExactSizeIterator`](https://doc.rust-lang.org/std/iter/trait.ExactSizeIterator.html)
When deriving for enum like the following:
```rust
#[derive(ExactSizeIterator)]
enum Enum {
A(A),
B(B),
}
```
Code like this will be generated:
```rust
enum Enum {
A(A),
B(B),
}
impl ::core::iter::ExactSizeIterator for Enum
where
A: ::core::iter::ExactSizeIterator,
B: ::core::iter::ExactSizeIterator- ::Item>,
{
#[inline]
fn len(&self) -> usize {
match self {
Enum::A(x) => ::core::iter::ExactSizeIterator::len(x),
Enum::B(x) => ::core::iter::ExactSizeIterator::len(x),
}
}
}
```