Skip to main content

dope_sys/probe/
outcome.rs

1use crate::probe::Failure;
2
3/// Native completion checks retain the caller's identity and exact observation.
4pub 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}