mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 01:18:34 +00:00
errors
This commit is contained in:
1 parent
a4e3525080
commit
80e428ee60
5 files changed
+35
-8
No files matched your search
@@ -4,8 +4,8 @@ use rootly_client::creds::rootly_api_key::RootlyApiKey;
|
||||
|
||||
use crate::client::pager::Pager;
|
||||
use crate::client::pager_client::{PagerClient, PagerClientConfig};
|
||||
use crate::error::pager_builder_error::PagerBuilderError;
|
||||
use crate::error::pager_error::PagerError;
|
||||
use crate::error::pager_system_error::PagerSystemError;
|
||||
use crate::worker::pager_worker_message_queue::{new_shared_queue, new_shared_queue_with_capacity, PagerWorkerMessageQueue};
|
||||
use crate::worker::pager_worker::PagerWorker;
|
||||
|
||||
@@ -104,7 +104,7 @@ impl PagerBuilder {
|
||||
|
||||
fn make_client(&self) -> Result<PagerClient, PagerError> {
|
||||
let client_config = self.client_config.clone()
|
||||
.ok_or(PagerSystemError::NoBackendConfigured)?;
|
||||
.ok_or(PagerBuilderError::NoBackendConfigured)?;
|
||||
|
||||
Ok(PagerClient::new(client_config, self.application_name.clone(), self.environment.clone()))
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
pub mod pager_builder_error;
|
||||
pub mod pager_error;
|
||||
pub mod pager_service_error;
|
||||
pub mod pager_system_error;
|
||||
@@ -0,0 +1,19 @@
|
||||
use std::error::Error;
|
||||
use std::fmt::{Display, Formatter};
|
||||
|
||||
/// Errors from building/configuring a Pager instance.
|
||||
#[derive(Debug)]
|
||||
pub enum PagerBuilderError {
|
||||
/// The pager was not configured with a backend.
|
||||
NoBackendConfigured,
|
||||
}
|
||||
|
||||
impl Error for PagerBuilderError {}
|
||||
|
||||
impl Display for PagerBuilderError {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
Self::NoBackendConfigured => write!(f, "No pager backend configured. Call .rootly() or .client_config() on PagerBuilder."),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,20 @@
|
||||
use std::error::Error;
|
||||
use std::fmt::{Display, Formatter};
|
||||
|
||||
use crate::error::pager_builder_error::PagerBuilderError;
|
||||
use crate::error::pager_service_error::PagerServiceError;
|
||||
use crate::error::pager_system_error::PagerSystemError;
|
||||
|
||||
/// Top-level error type for the pager library.
|
||||
#[derive(Debug)]
|
||||
pub enum PagerError {
|
||||
/// An error during Pager construction/configuration.
|
||||
Builder(PagerBuilderError),
|
||||
|
||||
/// A third-party paging service (Rootly, etc.) returned an error.
|
||||
Service(PagerServiceError),
|
||||
|
||||
/// Our own pager system broke (configuration, mutex, queue, etc.).
|
||||
/// Our own pager system broke (mutex, queue, etc.).
|
||||
System(PagerSystemError),
|
||||
}
|
||||
|
||||
@@ -19,12 +23,19 @@ impl Error for PagerError {}
|
||||
impl Display for PagerError {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
Self::Builder(err) => write!(f, "PagerBuilderError: {}", err),
|
||||
Self::Service(err) => write!(f, "PagerServiceError: {}", err),
|
||||
Self::System(err) => write!(f, "PagerSystemError: {}", err),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<PagerBuilderError> for PagerError {
|
||||
fn from(err: PagerBuilderError) -> Self {
|
||||
Self::Builder(err)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<PagerServiceError> for PagerError {
|
||||
fn from(err: PagerServiceError) -> Self {
|
||||
Self::Service(err)
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
use std::error::Error;
|
||||
use std::fmt::{Display, Formatter};
|
||||
|
||||
/// Errors from our own pager system (configuration, concurrency, etc.).
|
||||
/// Errors from our own pager system at runtime (concurrency, queue, etc.).
|
||||
#[derive(Debug)]
|
||||
pub enum PagerSystemError {
|
||||
/// The pager was not configured with a backend.
|
||||
NoBackendConfigured,
|
||||
|
||||
/// The message queue was not configured. Use `build_with_worker()` to enable queuing.
|
||||
QueueNotConfigured,
|
||||
|
||||
@@ -19,7 +16,6 @@ impl Error for PagerSystemError {}
|
||||
impl Display for PagerSystemError {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
Self::NoBackendConfigured => write!(f, "No pager backend configured. Call .rootly() or .client_config() on PagerBuilder."),
|
||||
Self::QueueNotConfigured => write!(f, "Pager message queue not configured. Use build_with_worker() to enable queuing."),
|
||||
Self::MutexPoisoned(msg) => write!(f, "Pager mutex poisoned: {}", msg),
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user