use std::{
marker::PhantomData,
ops::{Deref, DerefMut},
};
pub struct FnWrapperMut<'iter, 'graph: 'iter, F> {
f: &'iter mut F,
marker: PhantomData<&'graph ()>,
}
impl<'iter, 'graph: 'iter, F> FnWrapperMut<'iter, 'graph, F> {
pub(crate) fn new(f: &'iter mut F) -> Self {
Self {
f,
marker: PhantomData,
}
}
}
impl<F> Deref for FnWrapperMut<'_, '_, F> {
type Target = F;
fn deref(&self) -> &Self::Target {
self.f
}
}
impl<F> DerefMut for FnWrapperMut<'_, '_, F> {
fn deref_mut(&mut self) -> &mut Self::Target {
self.f
}
}