This commit is contained in:
Brandon Thomas committed 2026-03-25 17:17:25 -04:00
1 parent a4e3525080
commit 80e428ee60
5 files changed
+35 -8

No files matched your search

+2 -2
View File
@@ -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
View File
@@ -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."),
}
}
}
+12 -1
View File
@@ -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),
}