pub trait Restcrab where
Self: Sized, {
type Error: Error + Debug + From<Error> + 'static + Send + Sync;
type Options;
type Crab: Restcrab;
fn call<REQ: Serialize, RES: for<'de> Deserialize<'de>>(
&self,
request: Request<REQ>
) -> Result<Option<RES>, Self::Error>;
fn from_options(options: Self::Options) -> Result<Self, Self::Error>;
fn options(&self) -> &Self::Options;
fn options_mut(&mut self) -> &mut Self::Options;
}