// test if f(x) is dirty by equality
// HACK
// this is only provided to help work around borrow checker issues
//
// To clarify: If there is no last clean value, then ALL projections
// are considered dirty by definition.
test if f(x) is dirty by equality
HACK
this is only provided to help work around borrow checker issues

To clarify: If there is no last clean value, then ALL projections
are considered dirty by definition.
test if f ( x ) is dirty by equality HACK this is only provided to help work around borrow checker issues To clarify : If there is no last clean value then ALL projections are considered dirty by definition .
pub fn is_projection_dirty<K: ?Sized + PartialEq>(
        &self,
        mut f: impl FnMut(&T) -> &K,
    ) -> bool {
        match (&self.clean, &self.dirty) {
            (Some(clean), Some(dirty)) => f(clean) != f(dirty),
            (None, Some(_)) => true,
            (Some(_), None) => false,
            (None, None) => unreachable!(),
        }
    }
pub fn is_projection_dirty < K : ? Sized + PartialEq > ( & self , mut f : impl FnMut ( & T ) -> & K , ) -> bool { match ( & self . clean , & self . dirty ) { ( Some ( clean ) , Some ( dirty ) ) => f ( clean ) != f ( dirty ) , ( None , Some ( _ ) ) => true , ( Some ( _ ) , None ) => false , ( None , None ) => unreachable ! ( ) , } }
test if f(x) is dirty by equality
HACK
this is only provided to help work around borrow checker issues
test if f ( x ) is dirty by equality HACK this is only provided to help work around borrow checker issues
&self
f
impl FnMut(&T) -> &K