use crate::Tickable;
use self::map_tick::MapTick;
use super::{operator::then::Then, GatOperator};
pub mod map_tick;
pub trait TickGatOperatorExt<I>: GatOperator<I>
where
for<'out> Self::Output<'out>: Tickable,
{
fn map_tick<P>(self, op: P) -> Then<Self, MapTick<P>>
where
Self: Sized,
P: for<'out> GatOperator<<Self::Output<'out> as Tickable>::Value>,
{
Then(self, MapTick(op))
}
}
impl<I, P> TickGatOperatorExt<I> for P
where
P: GatOperator<I>,
for<'out> P::Output<'out>: Tickable,
{
}