roguelike-game/src/game_log.rs

25 lines
691 B
Rust
Raw Normal View History

2022-01-21 15:55:13 -05:00
/// A struct to hold the player's game log.
#[derive(Default)]
pub struct GameLog {
pub entries: Vec<String>,
}
2021-11-05 14:32:14 -04:00
impl GameLog {
2022-01-21 15:55:13 -05:00
/// Convenience constructor that adds the first
/// entry to the game log.
2021-11-05 14:32:14 -04:00
pub fn new<S: ToString>(first_entry: S) -> Self {
let mut log = GameLog::default();
log.append(first_entry);
log
2021-11-05 14:32:14 -04:00
}
2022-01-21 15:55:13 -05:00
/// Convenience method for adding an entry to the game log.
/// Generic on the [`ToString`] trait so that [`&str`], [`String`],
/// and `&String` types, all work without more type juggling
/// at the call site.
pub fn append<S: ToString>(&mut self, s: S) {
self.entries.push(s.to_string());
}
2021-11-05 14:32:14 -04:00
}