dope_sys/probe/
outcome.rs1use crate::probe::Failure;
2
3pub trait Outcome: Sized {
5 type Parts;
6 type Value;
7 type Meta: Copy;
8 type Probe: Copy;
9 type Observation;
10
11 fn new(
12 parts: Self::Parts,
13 probe: Self::Probe,
14 ) -> Result<Self, Failure<Self::Probe, Self::Observation>>;
15 fn success(&self) -> Result<Self::Value, Failure<Self::Probe, Self::Observation>>;
16 fn zero(self) -> Result<(), Failure<Self::Probe, Self::Observation>>;
17 fn canceled(self) -> Result<(), Failure<Self::Probe, Self::Observation>>;
18 fn cancel(self) -> Result<(), Failure<Self::Probe, Self::Observation>>;
19 fn probe(&self) -> Self::Probe;
20 fn meta(&self) -> Self::Meta;
21 fn unexpected(&self) -> Failure<Self::Probe, Self::Observation>;
22 fn nonterminal(&self) -> Failure<Self::Probe, Self::Observation>;
23}