pub trait CallMut<Service>: Sized {
type Error;
type Context;
// Required method
fn call_mut_with_ctx(
self,
service: &mut Service,
context: Self::Context
) -> Result<(), Self::Error>;
// Provided method
fn call_mut(self, service: &mut Service) -> Result<(), Self::Error>
where Self::Context: IsUnit { ... }
}