## [`ParallelIterator`](https://docs.rs/rayon/1.0/rayon/iter/trait.ParallelIterator.html)
When deriving for enum like the following:
```rust
#[derive(ParallelIterator)]
enum Enum {
A(A),
B(B),
}
```
Code like this will be generated:
```rust
enum Enum {
A(A),
B(B),
}
impl ::rayon::iter::ParallelIterator for Enum
where
A: ::rayon::iter::ParallelIterator,
B: ::rayon::iter::ParallelIterator- ::Item>,
{
type Item = ::Item;
#[inline]
fn drive_unindexed<__C>(self, consumer: __C) -> __C::Result
where
__C: ::rayon::iter::plumbing::UnindexedConsumer,
{
match self {
Enum::A(x) => ::rayon::iter::ParallelIterator::drive_unindexed(x, consumer),
Enum::B(x) => ::rayon::iter::ParallelIterator::drive_unindexed(x, consumer),
}
}
#[inline]
fn opt_len(&self) -> ::core::option::Option {
match self {
Enum::A(x) => ::rayon::iter::ParallelIterator::opt_len(x),
Enum::B(x) => ::rayon::iter::ParallelIterator::opt_len(x),
}
}
}
```