blastmud/blastmud_game/src/models/session.rs

38 lines
1003 B
Rust
Raw Normal View History

2023-01-28 23:00:53 +11:00
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
2022-12-24 21:16:23 +11:00
#[derive(Serialize, Deserialize, Clone, Debug)]
2023-01-02 13:25:05 +11:00
#[serde(default)]
2022-12-24 21:16:23 +11:00
pub struct Session {
pub source: String,
pub less_explicit_mode: bool,
2023-01-28 23:00:53 +11:00
pub last_active: Option<DateTime<Utc>>,
2022-12-24 21:16:23 +11:00
// Reminder: Consider backwards compatibility when updating this. New fields should generally
2023-01-02 13:25:05 +11:00
// be an Option, or you should ensure the default value is sensible, or things will
// crash out for existing sessions.
2022-12-24 21:16:23 +11:00
}
impl Session {
pub fn explicit_if_allowed<'l>(
self: &Self,
explicit: &'l str,
non_explicit: Option<&'l str>,
) -> &'l str {
if self.less_explicit_mode {
non_explicit.unwrap_or(explicit)
} else {
explicit
}
}
}
2022-12-24 21:16:23 +11:00
impl Default for Session {
fn default() -> Self {
Session {
source: "unknown".to_owned(),
less_explicit_mode: false,
last_active: None,
}
2022-12-24 21:16:23 +11:00
}
}