use std::marker::PhantomData;
#[derive(Debug, Clone, Copy)]
pub struct OkMapStep<MapperFn, InputOk, OutputOk>
where
MapperFn: Fn(InputOk) -> OutputOk,
{
mapper: MapperFn,
_phantom: PhantomData<(InputOk, OutputOk)>,
}
impl<MapperFn, InputOk, OutputOk> OkMapStep<MapperFn, InputOk, OutputOk>
where
MapperFn: Fn(InputOk) -> OutputOk,
{
pub fn new(mapper: MapperFn) -> Self {
Self {
mapper,
_phantom: PhantomData,
}
}
pub(crate) fn apply(&self, input_ok: InputOk) -> OutputOk {
(self.mapper)(input_ok)
}
}