use crate::{
BuildTaskError, EngineTaskError, SynchronizeTaskError,
task_queue::tasks::task::EngineTaskErrorSeverity,
};
use thiserror::Error;
#[derive(Debug, Error)]
pub enum ConsolidateTaskError {
#[error("Unsafe L2 block is missing {0}")]
MissingUnsafeL2Block(u64),
#[error("Failed to fetch the unsafe L2 block")]
FailedToFetchUnsafeL2Block,
#[error(transparent)]
BuildTaskFailed(#[from] BuildTaskError),
#[error(transparent)]
ForkchoiceUpdateFailed(#[from] SynchronizeTaskError),
}
impl EngineTaskError for ConsolidateTaskError {
fn severity(&self) -> EngineTaskErrorSeverity {
match self {
Self::MissingUnsafeL2Block(_) => EngineTaskErrorSeverity::Reset,
Self::FailedToFetchUnsafeL2Block => EngineTaskErrorSeverity::Temporary,
Self::BuildTaskFailed(inner) => inner.severity(),
Self::ForkchoiceUpdateFailed(inner) => inner.severity(),
}
}
}