Trait dfir_rs::util::demux_enum::DemuxEnum

source ·
pub trait DemuxEnum<Outputs>: DemuxEnumBase {
    // Required method
    fn demux_enum(self, outputs: &mut Outputs);
}
Expand description

Trait for use with the demux_enum operator.

This trait is meant to be derived: #[derive(DemuxEnum)].

The derive will implement this such that Outputs can be any tuple where each item is a Pusherator that corresponds to each of the variants of the tuple, in alphabetic order.

Required Methods§

source

fn demux_enum(self, outputs: &mut Outputs)

Pushes self into the corresponding output pusherator in outputs.

Implementors§

impl<__PusheratorDelete, __PusheratorExit, __PusheratorGet, __PusheratorSet> DemuxEnum<(__PusheratorDelete, __PusheratorExit, __PusheratorGet, __PusheratorSet)> for InteractiveCommands
where __PusheratorDelete: Pusherator<Item = (Key,)>, __PusheratorExit: Pusherator<Item = ()>, __PusheratorGet: Pusherator<Item = (Key,)>, __PusheratorSet: Pusherator<Item = (Key, String)>,

impl<A, __PusheratorAck, __PusheratorGossip, __PusheratorNack> DemuxEnum<(__PusheratorAck, __PusheratorGossip, __PusheratorNack)> for GossipRequestWithAddress<A>
where __PusheratorAck: Pusherator<Item = (String, String, A)>, __PusheratorGossip: Pusherator<Item = (String, String, Namespaces<Clock>, A)>, __PusheratorNack: Pusherator<Item = (String, String, A)>,

impl<A, __PusheratorDelete, __PusheratorGet, __PusheratorSet> DemuxEnum<(__PusheratorDelete, __PusheratorGet, __PusheratorSet)> for ClientRequestWithAddress<A>
where __PusheratorDelete: Pusherator<Item = (Key, A)>, __PusheratorGet: Pusherator<Item = (Key, A)>, __PusheratorSet: Pusherator<Item = (Key, String, A)>,