Skip to main content

ProblemReceiver

Trait ProblemReceiver 

Source
pub trait ProblemReceiver {
    // Required method
    fn give(&mut self, problem: Problem) -> Result<(), Problem>;
}
Expand description

A problem receiver.

Example of usage:

fn divide<ProblemReceiverT>(a: f64, b: f64, problems: &mut ProblemReceiverT) -> Result<Option<f64>, Problem>
where
    ProblemReceiverT: ProblemReceiver,
{
    Ok(if b == 0.0 {
        problems.give("division by zero".into_problem())?;
        None
    } else {
        Some(a / b)
    })
}

Required Methods§

Source

fn give(&mut self, problem: Problem) -> Result<(), Problem>

Gives a problem to the receiver.

Implementations may swallow the problem (e.g. to accumulate it) or return it (fail-fast).

Implementors§