ApiContract

Trait ApiContract 

Source
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§

Source

fn validate_input(&self, input: &Self::Input) -> Result<(), ContractError>

Validate input according to contract

Source

fn process(&self, input: Self::Input) -> Result<Self::Output, Self::Error>

Process input according to contract

Source

fn validate_output(&self, output: &Self::Output) -> Result<(), ContractError>

Validate output according to contract

Implementors§