tenebrous-dicebot/src/context.rs

37 lines
803 B
Rust
Raw Normal View History

use crate::db::Database;
use matrix_sdk::identifiers::RoomId;
use matrix_sdk::room::Joined;
2020-11-22 20:52:44 +00:00
use matrix_sdk::Client;
/// A context carried through the system providing access to things
/// like the database.
#[derive(Clone)]
pub struct Context<'a> {
2020-10-17 15:18:51 +00:00
pub db: Database,
2020-11-22 20:52:44 +00:00
pub matrix_client: &'a Client,
pub room: RoomContext<'a>,
pub username: &'a str,
pub message_body: &'a str,
}
impl Context<'_> {
pub fn room_id(&self) -> &RoomId {
self.room.id
}
}
#[derive(Clone)]
pub struct RoomContext<'a> {
pub id: &'a RoomId,
pub display_name: &'a str,
}
impl RoomContext<'_> {
pub fn new_with_name<'a>(room: &'a Joined, display_name: &'a str) -> RoomContext<'a> {
RoomContext {
id: room.room_id(),
display_name,
}
}
}