pub trait ApiContract {
type Input;
type Output;
type Error;
// Required methods
fn validate_input(&self, input: &Self::Input) -> Result<(), ContractError>;
fn process(&self, input: Self::Input) -> Result<Self::Output, Self::Error>;
fn validate_output(
&self,
output: &Self::Output,
) -> Result<(), ContractError>;
}Expand description
API contract trait for ensuring API stability
Required Associated Types§
Required Methods§
Sourcefn validate_input(&self, input: &Self::Input) -> Result<(), ContractError>
fn validate_input(&self, input: &Self::Input) -> Result<(), ContractError>
Validate input according to contract
Sourcefn process(&self, input: Self::Input) -> Result<Self::Output, Self::Error>
fn process(&self, input: Self::Input) -> Result<Self::Output, Self::Error>
Process input according to contract
Sourcefn validate_output(&self, output: &Self::Output) -> Result<(), ContractError>
fn validate_output(&self, output: &Self::Output) -> Result<(), ContractError>
Validate output according to contract