pub struct Channels { /* private fields */ }Expand description
The channels one notification goes out on.
Selected by type, not by name, for the same reason
middleware is: a misspelled "mial" is a notification
that silently goes nowhere, and deleting a channel should break every
notification that used it in the compiler.
let channels = Channels::new().with::<LogChannel>().with::<MemoryChannel>();
assert_eq!(channels.len(), 2);Implementations§
Source§impl Channels
impl Channels
Sourcepub fn new() -> Channels
pub fn new() -> Channels
No channels. A notification returning this is not sent anywhere, which is a legitimate answer — “this user has opted out of everything”.
Sourcepub fn with<C>(self) -> Channelswhere
C: Channel,
pub fn with<C>(self) -> Channelswhere
C: Channel,
Add a channel.
By type only — no instance and no Default bound. Selecting a channel
and configuring one are different things: a MailChannel needs a
mailer, and the notification has no business holding one.
Trait Implementations§
impl Eq for Channels
impl StructuralPartialEq for Channels
Auto Trait Implementations§
impl Freeze for Channels
impl RefUnwindSafe for Channels
impl Send for Channels
impl Sync for Channels
impl Unpin for Channels
impl UnsafeUnpin for Channels
impl UnwindSafe for Channels
Blanket Implementations§
impl<T> Actor for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Event for T
impl<T> Event for T
Source§fn event_name() -> &'static strwhere
Self: Sized,
fn event_name() -> &'static strwhere
Self: Sized,
A human-readable name, used by wildcard listeners and log output.
Always the Rust type path; see the trait docs.
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 moreCreates a shared type from an unshared type.