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