pub struct GlobalCache {
pub api_config: Arc<StoatConfig>,
pub config: Arc<CacheConfig>,
pub servers: Arc<HashMap<String, Server>>,
pub users: Arc<HashMap<String, User>>,
pub members: Arc<HashMap<String, HashMap<String, Member>>>,
pub channels: Arc<HashMap<String, Channel>>,
pub messages: Arc<RwLock<VecDeque<Message>>>,
pub emojis: Arc<HashMap<String, Emoji>>,
pub voice_states: Arc<HashMap<String, ChannelVoiceState>>,
pub current_user_id: Arc<RwLock<Option<String>>>,
}Expand description
Holds all locally cached objects.
Fields§
§api_config: Arc<StoatConfig>§config: Arc<CacheConfig>§servers: Arc<HashMap<String, Server>>§users: Arc<HashMap<String, User>>§members: Arc<HashMap<String, HashMap<String, Member>>>§channels: Arc<HashMap<String, Channel>>§messages: Arc<RwLock<VecDeque<Message>>>§emojis: Arc<HashMap<String, Emoji>>§voice_states: Arc<HashMap<String, ChannelVoiceState>>§current_user_id: Arc<RwLock<Option<String>>>Implementations§
Source§impl GlobalCache
impl GlobalCache
pub fn new(api_config: StoatConfig, config: CacheConfig) -> Self
Sourcepub fn autumn_url(&self) -> &str
pub fn autumn_url(&self) -> &str
Base URL for Autumn.
Sourcepub fn livekit_nodes(&self) -> &[VoiceNode]
pub fn livekit_nodes(&self) -> &[VoiceNode]
All public Livekit voice nodes.
Sourcepub fn get_server(&self, server_id: &str) -> Option<Server>
pub fn get_server(&self, server_id: &str) -> Option<Server>
Gets a server.
Sourcepub fn insert_server(&self, server: Server)
pub fn insert_server(&self, server: Server)
Inserts a server.
Sourcepub fn update_server_with<R>(
&self,
server_id: &str,
f: impl FnOnce(&mut Server) -> R,
) -> Option<R>
pub fn update_server_with<R>( &self, server_id: &str, f: impl FnOnce(&mut Server) -> R, ) -> Option<R>
Updates a server.
Sourcepub fn remove_server(&self, server_id: &str) -> Option<Server>
pub fn remove_server(&self, server_id: &str) -> Option<Server>
Removes a server.
Sourcepub fn insert_user(&self, user: User)
pub fn insert_user(&self, user: User)
Inserts a user.
Sourcepub fn update_user_with<R>(
&self,
user_id: &str,
f: impl FnOnce(&mut User) -> R,
) -> Option<R>
pub fn update_user_with<R>( &self, user_id: &str, f: impl FnOnce(&mut User) -> R, ) -> Option<R>
Updates a user.
Sourcepub fn remove_user(&self, user_id: &str) -> Option<User>
pub fn remove_user(&self, user_id: &str) -> Option<User>
Removes a user.
Sourcepub fn get_member(&self, server_id: &str, user_id: &str) -> Option<Member>
pub fn get_member(&self, server_id: &str, user_id: &str) -> Option<Member>
Gets a server member.
Sourcepub fn insert_member(&self, member: Member)
pub fn insert_member(&self, member: Member)
Inserts a server member.
Sourcepub fn update_member_with<R>(
&self,
server_id: &str,
user_id: &str,
f: impl FnOnce(&mut Member) -> R,
) -> Option<R>
pub fn update_member_with<R>( &self, server_id: &str, user_id: &str, f: impl FnOnce(&mut Member) -> R, ) -> Option<R>
Updates a server member.
Sourcepub fn remove_member(&self, server_id: &str, user_id: &str) -> Option<Member>
pub fn remove_member(&self, server_id: &str, user_id: &str) -> Option<Member>
Removes a server member.
Sourcepub fn get_channel(&self, channel_id: &str) -> Option<Channel>
pub fn get_channel(&self, channel_id: &str) -> Option<Channel>
Gets a channel.
Sourcepub fn insert_channel(&self, channel: Channel)
pub fn insert_channel(&self, channel: Channel)
Inserts a channel.
Sourcepub fn update_channel_with<R>(
&self,
channel_id: &str,
f: impl FnOnce(&mut Channel) -> R,
) -> Option<R>
pub fn update_channel_with<R>( &self, channel_id: &str, f: impl FnOnce(&mut Channel) -> R, ) -> Option<R>
Updates a channel.
Sourcepub fn remove_channel(&self, channel_id: &str) -> Option<Channel>
pub fn remove_channel(&self, channel_id: &str) -> Option<Channel>
Removes a channel.
Sourcepub fn get_message(&self, message_id: &str) -> Option<Message>
pub fn get_message(&self, message_id: &str) -> Option<Message>
Gets a message.
Sourcepub fn insert_message(&self, message: Message)
pub fn insert_message(&self, message: Message)
Inserts a message.
Sourcepub fn update_message_with<R>(
&self,
message_id: &str,
f: impl FnOnce(&mut Message) -> R,
) -> Option<R>
pub fn update_message_with<R>( &self, message_id: &str, f: impl FnOnce(&mut Message) -> R, ) -> Option<R>
Updates a message.
Sourcepub fn remove_message(&self, message_id: &str) -> Option<Message>
pub fn remove_message(&self, message_id: &str) -> Option<Message>
Removes a message.
Sourcepub fn remove_messages(&self, message_ids: &[String]) -> Vec<Message>
pub fn remove_messages(&self, message_ids: &[String]) -> Vec<Message>
Bulk removes messages.
Sourcepub fn get_current_user(&self) -> Option<User>
pub fn get_current_user(&self) -> Option<User>
Current logged in user.
Examples found in repository?
More examples
Sourcepub fn insert_voice_state(&self, voice_state: ChannelVoiceState)
pub fn insert_voice_state(&self, voice_state: ChannelVoiceState)
Inserts a channel voice state.
Sourcepub fn remove_voice_state(&self, channel_id: &str) -> Option<ChannelVoiceState>
pub fn remove_voice_state(&self, channel_id: &str) -> Option<ChannelVoiceState>
Removes a channel voice state.
Sourcepub fn get_voice_state(&self, channel_id: &str) -> Option<ChannelVoiceState>
pub fn get_voice_state(&self, channel_id: &str) -> Option<ChannelVoiceState>
Gets a channel voice state.
Sourcepub fn insert_voice_state_partipant(
&self,
channel_id: &str,
user_voice_state: UserVoiceState,
)
pub fn insert_voice_state_partipant( &self, channel_id: &str, user_voice_state: UserVoiceState, )
Inserts a voice state partipant.
Sourcepub fn remove_voice_state_partipant(
&self,
channel_id: &str,
user_id: &str,
) -> Option<UserVoiceState>
pub fn remove_voice_state_partipant( &self, channel_id: &str, user_id: &str, ) -> Option<UserVoiceState>
Removes a voice state partipant
Sourcepub fn update_voice_state_partipant_with<R>(
&self,
channel_id: &str,
user_id: &str,
f: impl FnOnce(&mut UserVoiceState) -> R,
) -> Option<R>
pub fn update_voice_state_partipant_with<R>( &self, channel_id: &str, user_id: &str, f: impl FnOnce(&mut UserVoiceState) -> R, ) -> Option<R>
Updates a voice state partipant.
Sourcepub fn insert_emoji(&self, emoji: Emoji)
pub fn insert_emoji(&self, emoji: Emoji)
Inserts an emoji.
Sourcepub fn remove_emoji(&self, emoji_id: &str) -> Option<Emoji>
pub fn remove_emoji(&self, emoji_id: &str) -> Option<Emoji>
Removes an emoji.
Sourcepub fn remove_server_emojis(&self, server_id: &str) -> Vec<Emoji>
pub fn remove_server_emojis(&self, server_id: &str) -> Vec<Emoji>
Removes all server emojis.
Sourcepub fn set_current_user_id(&self, user_id: String)
pub fn set_current_user_id(&self, user_id: String)
Sets the current logged in user id.
pub fn get_current_user_id(&self) -> Option<String>
Trait Implementations§
Source§impl AsRef<GlobalCache> for GlobalCache
impl AsRef<GlobalCache> for GlobalCache
Source§fn as_ref(&self) -> &GlobalCache
fn as_ref(&self) -> &GlobalCache
Source§impl<E: From<Error> + Clone + Debug + Send + Sync + 'static, S: Debug + Clone + Send + Sync + 'static> AsRef<GlobalCache> for Context<E, S>
impl<E: From<Error> + Clone + Debug + Send + Sync + 'static, S: Debug + Clone + Send + Sync + 'static> AsRef<GlobalCache> for Context<E, S>
Source§fn as_ref(&self) -> &GlobalCache
fn as_ref(&self) -> &GlobalCache
Source§impl AsRef<GlobalCache> for Context
impl AsRef<GlobalCache> for Context
Source§fn as_ref(&self) -> &GlobalCache
fn as_ref(&self) -> &GlobalCache
Source§impl Clone for GlobalCache
impl Clone for GlobalCache
Source§fn clone(&self) -> GlobalCache
fn clone(&self) -> GlobalCache
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for GlobalCache
impl RefUnwindSafe for GlobalCache
impl Send for GlobalCache
impl Sync for GlobalCache
impl Unpin for GlobalCache
impl UnsafeUnpin for GlobalCache
impl UnwindSafe for GlobalCache
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.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> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.