31 lines
717 B
Rust
31 lines
717 B
Rust
use crate::db::Database;
|
|
use matrix_sdk::identifiers::RoomId;
|
|
use matrix_sdk::Client;
|
|
use matrix_sdk::JoinedRoom;
|
|
|
|
/// A context carried through the system providing access to things
|
|
/// like the database.
|
|
#[derive(Clone)]
|
|
pub struct Context<'a> {
|
|
pub db: Database,
|
|
pub matrix_client: &'a Client,
|
|
pub room: RoomContext<'a>,
|
|
pub username: &'a str,
|
|
pub message_body: &'a str,
|
|
}
|
|
|
|
#[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 JoinedRoom, display_name: &'a str) -> RoomContext<'a> {
|
|
RoomContext {
|
|
id: room.room_id(),
|
|
display_name,
|
|
}
|
|
}
|
|
}
|