5 pub mod private_message;
6 #[cfg(feature = "full")]
10 #[cfg(feature = "full")]
15 extern crate strum_macros;
16 pub extern crate lemmy_db_schema;
17 pub extern crate lemmy_db_views;
18 pub extern crate lemmy_db_views_actor;
19 pub extern crate lemmy_db_views_moderator;
21 use crate::websocket::chat_server::ChatServer;
23 use lemmy_db_schema::{source::secret::Secret, utils::DbPool};
25 rate_limit::RateLimitCell,
26 settings::{structs::Settings, SETTINGS},
28 use reqwest_middleware::ClientWithMiddleware;
30 pub struct LemmyContext {
32 chat_server: Addr<ChatServer>,
33 client: ClientWithMiddleware,
36 rate_limit_cell: RateLimitCell,
42 chat_server: Addr<ChatServer>,
43 client: ClientWithMiddleware,
46 settings_updated_channel: RateLimitCell,
54 rate_limit_cell: settings_updated_channel,
57 pub fn pool(&self) -> &DbPool {
60 pub fn chat_server(&self) -> &Addr<ChatServer> {
63 pub fn client(&self) -> &ClientWithMiddleware {
66 pub fn settings(&self) -> &'static Settings {
69 pub fn secret(&self) -> &Secret {
72 pub fn settings_updated_channel(&self) -> &RateLimitCell {
77 impl Clone for LemmyContext {
78 fn clone(&self) -> Self {
80 pool: self.pool.clone(),
81 chat_server: self.chat_server.clone(),
82 client: self.client.clone(),
83 settings: self.settings.clone(),
84 secret: self.secret.clone(),
85 rate_limit_cell: self.rate_limit_cell.clone(),