mod batch;
mod r#impl;
mod iter;
mod queue;
mod store;
pub use self::batch::OutcomeBatch;
pub use self::iter::OutcomeIteratorExt;
pub use self::queue::OutcomeQueue;
pub use self::store::OutcomeStore;
pub(super) use self::store::{DerefOutcomes, OwnedOutcomes};
use crate::bee::{TaskId, Worker};
use crate::panic::Panic;
use derive_more::Debug;
#[derive(Debug)]
pub enum Outcome<W: Worker> {
Success {
#[debug(skip)]
value: W::Output,
task_id: TaskId,
},
SuccessWithSubtasks {
#[debug(skip)]
value: W::Output,
task_id: TaskId,
subtask_ids: Vec<TaskId>,
},
Failure {
#[debug(skip)]
input: Option<W::Input>,
error: W::Error,
task_id: TaskId,
},
FailureWithSubtasks {
#[debug(skip)]
input: Option<W::Input>,
error: W::Error,
task_id: TaskId,
subtask_ids: Vec<TaskId>,
},
Unprocessed {
#[debug(skip)]
input: W::Input,
task_id: TaskId,
},
UnprocessedWithSubtasks {
#[debug(skip)]
input: W::Input,
task_id: TaskId,
subtask_ids: Vec<TaskId>,
},
Missing { task_id: TaskId },
Panic {
#[debug(skip)]
input: Option<W::Input>,
payload: Panic<String>,
task_id: TaskId,
},
PanicWithSubtasks {
#[debug(skip)]
input: Option<W::Input>,
payload: Panic<String>,
task_id: TaskId,
subtask_ids: Vec<TaskId>,
},
#[cfg(feature = "local-batch")]
WeightLimitExceeded {
#[debug(skip)]
input: W::Input,
weight: u32,
task_id: TaskId,
},
#[cfg(feature = "retry")]
MaxRetriesAttempted {
#[debug(skip)]
input: W::Input,
error: W::Error,
task_id: TaskId,
},
}