pub struct PolicyState {
live: HashMap<String, Live>,
focus: HashMap<String, FocusReport>,
last_focused_conn: Option<String>,
next_seq: u64,
last_shown: HashMap<String, i64>,
recent: VecDeque<i64>,
summarized: u32,
}Fields§
§live: HashMap<String, Live>group_key → the one live (pending or shown) notification for it.
focus: HashMap<String, FocusReport>§last_focused_conn: Option<String>The connection whose window most recently reported being focused — where a click with no pane of its own raises (§3.3 F).
next_seq: u64§last_shown: HashMap<String, i64>block_id → last time a toast for it was shown (per-block limit).
recent: VecDeque<i64>Show times inside the global window.
summarized: u32Notifications folded into the current summary.
Implementations§
Source§impl PolicyState
impl PolicyState
pub fn new() -> Self
Sourcefn app_focused(&self) -> bool
fn app_focused(&self) -> bool
Any window focused at all?
Sourcefn looking_at(&self, block_id: &str) -> bool
fn looking_at(&self, block_id: &str) -> bool
Is the user looking at exactly this block right now?
Sourcepub fn has_window(&self) -> bool
pub fn has_window(&self) -> bool
Whether any frontend window is connected (for click-with-no-window).
Sourcepub fn window_open(&self, window_id: &str) -> bool
pub fn window_open(&self, window_id: &str) -> bool
Whether a connected frontend reports being window window_id.
Sourcepub fn raise_window(&self) -> Option<String>
pub fn raise_window(&self) -> Option<String>
The window a click should raise when it names none of its own: the most recently focused one, else any connected window with an id.
Sourcefn should_show(&self, n: &Notification, s: &Settings) -> bool
fn should_show(&self, n: &Notification, s: &Settings) -> bool
§6.0 gate, evaluated at the moment a notification becomes due.
pub fn step(&mut self, input: Input, now_ms: i64, s: &Settings) -> Vec<Action>
fn release_due(&mut self, now_ms: i64, s: &Settings) -> Vec<Action>
fn paused(&self, n: &Notification, now_ms: i64, s: &Settings) -> bool
fn rate_limited( &self, n: &Notification, now_ms: i64, replaces_shown: bool, ) -> bool
Sourcefn show_summary(&mut self, now_ms: i64) -> Vec<Action>
fn show_summary(&mut self, now_ms: i64) -> Vec<Action>
Show (or replace in place) the one summary toast.
Sourcepub fn tray_state(&self, s: &Settings, now_ms: i64) -> TrayState
pub fn tray_state(&self, s: &Settings, now_ms: i64) -> TrayState
What the tray shows: every on-screen Attention notification, oldest first, plus the pause deadline.
fn drop_where( &mut self, out: &mut Vec<Action>, pred: impl Fn(&Notification) -> bool, )
Trait Implementations§
Source§impl Default for PolicyState
impl Default for PolicyState
Source§fn default() -> PolicyState
fn default() -> PolicyState
Auto Trait Implementations§
impl Freeze for PolicyState
impl RefUnwindSafe for PolicyState
impl Send for PolicyState
impl Sync for PolicyState
impl Unpin for PolicyState
impl UnsafeUnpin for PolicyState
impl UnwindSafe for PolicyState
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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> ⓘ
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> ⓘ
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 more