pub trait FromOperationState: Sized { fn from_operation_state( state: &mut State, object: &O, operation: &D, ) -> Result>; } pub struct StateExtractor(T); impl FromState for StateExtractor { fn from_state(state: &mut State) -> Result { todo!() } }