error[E0277]: the trait bound `std::option::Option<()>: DemuxEnumBase` is not satisfied --> tests/compile-fail/surface_demuxenum_wrongenum.rs:17:28 | 17 | ]) -> demux_enum::>(); | ^^^^^^^^^^ the trait `DemuxEnumBase` is not implemented for `std::option::Option<()>` | = note: use `#[derive(hydroflow::DemuxEnum)]` = help: the trait `DemuxEnumBase` is implemented for `Shape` note: required by a bound in `check_impl_demux_enum` --> tests/compile-fail/surface_demuxenum_wrongenum.rs:17:28 | 17 | ]) -> demux_enum::>(); | ^^^^^^^^^^ required by this bound in `check_impl_demux_enum` error[E0599]: no variant named `Circle` found for enum `std::option::Option<()>` --> tests/compile-fail/surface_demuxenum_wrongenum.rs:19:18 | 19 | my_demux[Circle] -> for_each(std::mem::drop); | ^^^^^^ variant not found in `std::option::Option<()>` error[E0599]: no variant named `Rectangle` found for enum `std::option::Option<()>` --> tests/compile-fail/surface_demuxenum_wrongenum.rs:18:18 | 18 | my_demux[Rectangle] -> for_each(std::mem::drop); | ^^^^^^^^^ variant not found in `std::option::Option<()>` error[E0599]: no variant named `Square` found for enum `std::option::Option<()>` --> tests/compile-fail/surface_demuxenum_wrongenum.rs:20:18 | 20 | my_demux[Square] -> for_each(std::mem::drop); | ^^^^^^ variant not found in `std::option::Option<()>` error[E0277]: the trait bound `std::option::Option<()>: DemuxEnum<_>` is not satisfied --> tests/compile-fail/surface_demuxenum_wrongenum.rs:17:15 | 17 | ]) -> demux_enum::>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `DemuxEnum<_>` is not implemented for `std::option::Option<()>` | = note: ensure there is exactly one output for each enum variant. = note: ensure that the type for each output is a tuple of the field for the variant: `()`, `(a,)`, or `(a, b, ...)`. = help: the trait `DemuxEnum<(__PusheratorCircle, __PusheratorRectangle, __PusheratorSquare)>` is implemented for `Shape` error[E0271]: type mismatch resolving `> as Pusherator>::Item == Shape` --> tests/compile-fail/surface_demuxenum_wrongenum.rs:17:15 | 13 | my_demux = source_iter([ | ____________________- 14 | | Shape::Rectangle { w: 10.0, h: 8.0 }, 15 | | Shape::Square(9.0), 16 | | Shape::Circle { r: 5.0 }, 17 | | ]) -> demux_enum::>(); | | ^^^^^^^^^^^^^^^^^^^^^^^^^- | |_______________|________________________| | | required by a bound introduced by this call | expected `Shape`, found `Option<()>` | = note: expected enum `Shape` found enum `std::option::Option<()>` note: required by a bound in `pivot_run_sg_1v1` --> tests/compile-fail/surface_demuxenum_wrongenum.rs:13:20 | 13 | my_demux = source_iter([ | ____________________^ 14 | | Shape::Rectangle { w: 10.0, h: 8.0 }, 15 | | Shape::Square(9.0), 16 | | Shape::Circle { r: 5.0 }, 17 | | ]) -> demux_enum::>(); | |________________________________________^ required by this bound in `pivot_run_sg_1v1`