pub struct OperatorEventRouter { /* private fields */ }Expand description
Config-driven dispatcher for OperatorEvent.
Build with OperatorEventRouter::new; the construction validates the
config strictly (unknown variant names / handler names / missing env vars
all return Err). With an empty config the router behaves identically to
the current OperatorEvent::emit().
Implementations§
Source§impl OperatorEventRouter
impl OperatorEventRouter
Sourcepub fn new(
config: RouterConfig,
audit_logger: Option<Arc<AuditLogger>>,
) -> Result<OperatorEventRouter, ConfigError>
pub fn new( config: RouterConfig, audit_logger: Option<Arc<AuditLogger>>, ) -> Result<OperatorEventRouter, ConfigError>
Build a router.
Validation order (boot fail-fast on any error):
- Parse → struct (caller’s responsibility for TOML).
- Strict variant name check with Levenshtein suggestion.
- Strict handler name check (closed set).
- Webhook env-var presence check.
Sourcepub fn route(&self, event: OperatorEvent)
pub fn route(&self, event: OperatorEvent)
Dispatch event through the configured handlers.
Always synchronous — safe to call from Drop impls, signal handlers,
and crash paths.
Sourcepub fn metrics(&self) -> RouterMetricsSnapshot
pub fn metrics(&self) -> RouterMetricsSnapshot
Prometheus-style metrics snapshot.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for OperatorEventRouter
impl RefUnwindSafe for OperatorEventRouter
impl Send for OperatorEventRouter
impl Sync for OperatorEventRouter
impl Unpin for OperatorEventRouter
impl UnsafeUnpin for OperatorEventRouter
impl UnwindSafe for OperatorEventRouter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request