Skip to main content

NotificationQueue

Struct NotificationQueue 

Source
pub struct NotificationQueue { /* private fields */ }
Expand description

Notification queue manager.

Manages multiple toast notifications with priority ordering, deduplication, and automatic expiry. Use push to add notifications and tick to process expiry in your event loop.

Implementations§

Source§

impl NotificationQueue

Source

pub fn new(config: QueueConfig) -> Self

Create a new notification queue with the given configuration.

Source

pub fn with_defaults() -> Self

Create a new queue with default configuration.

Source

pub fn push(&mut self, toast: Toast, priority: NotificationPriority) -> bool

Push a notification to the queue.

Returns true if the notification was accepted, false if it was rejected due to deduplication or queue overflow.

Source

pub fn notify(&mut self, toast: Toast) -> bool

Push a notification with normal priority.

Source

pub fn urgent(&mut self, toast: Toast) -> bool

Push an urgent notification.

Source

pub fn dismiss(&mut self, id: ToastId)

Dismiss a specific notification by ID.

Source

pub fn dismiss_all(&mut self)

Dismiss all notifications.

Source

pub fn tick(&mut self, _delta: Duration) -> Vec<QueueAction>

Process a time tick, handling expiry and promotion.

Call this regularly in your event loop (e.g., every frame or every 16ms). Returns a list of actions to perform.

Source

pub fn visible(&self) -> &[Toast]

Get currently visible toasts.

Source

pub fn visible_mut(&mut self) -> &mut [Toast]

Get mutable access to visible toasts.

Source

pub fn pending_count(&self) -> usize

Get the number of notifications waiting in the queue.

Source

pub fn visible_count(&self) -> usize

Get the number of visible toasts.

Source

pub fn total_count(&self) -> usize

Get the total count (visible + pending).

Source

pub fn is_empty(&self) -> bool

Check if the queue is empty (no visible or pending notifications).

Source

pub fn stats(&self) -> &QueueStats

Get queue statistics.

Source

pub fn config(&self) -> &QueueConfig

Get the configuration.

Source

pub fn calculate_positions( &self, terminal_width: u16, terminal_height: u16, margin: u16, ) -> Vec<(ToastId, u16, u16)>

Calculate stacking positions for all visible toasts.

Returns a list of (ToastId, x, y) positions.

Trait Implementations§

Source§

impl Debug for NotificationQueue

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for NotificationQueue

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more