pub struct SlackWorkspaces {
clients: BTreeMap<String, Arc<dyn SlackApi>>,
}Expand description
One client per configured workspace, keyed by its label.
Held as SlackApi rather than the concrete client so a test can
substitute a double and drive a real facade against it. Debug is
hand-written because a trait object is not, and it prints only the
labels: a client is not a thing worth printing.
Fields§
§clients: BTreeMap<String, Arc<dyn SlackApi>>Implementations§
Source§impl SlackWorkspaces
impl SlackWorkspaces
Sourcepub fn from_config(
configs: &[SlackConfig],
http: &Client,
) -> Result<Self, String>
pub fn from_config( configs: &[SlackConfig], http: &Client, ) -> Result<Self, String>
Labels key the clients a project’s binding resolves to and name the workspace in the Inspector, so they must be distinct and the token must be present.
pub fn is_empty(&self) -> bool
pub fn client(&self, label: &str) -> Option<Arc<dyn SlackApi>>
Trait Implementations§
Source§impl Debug for SlackWorkspaces
impl Debug for SlackWorkspaces
Auto Trait Implementations§
impl !RefUnwindSafe for SlackWorkspaces
impl !UnwindSafe for SlackWorkspaces
impl Freeze for SlackWorkspaces
impl Send for SlackWorkspaces
impl Sync for SlackWorkspaces
impl Unpin for SlackWorkspaces
impl UnsafeUnpin for SlackWorkspaces
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync 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
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§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> ⓘ
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 more