Weboard / src /whiteboard.rs
Sergidev's picture
v1
9982ad3 verified
raw
history blame
676 Bytes
use crate::app::{DrawAction};
use std::collections::VecDeque;
pub struct Whiteboard {
actions: VecDeque<DrawAction>,
max_actions: usize,
}
impl Whiteboard {
pub fn new() -> Self {
Whiteboard {
actions: VecDeque::new(),
max_actions: 1000,
}
}
pub fn add_action(&mut self, action: DrawAction) {
if self.actions.len() >= self.max_actions {
self.actions.pop_front();
}
self.actions.push_back(action);
}
pub fn clear(&mut self) {
self.actions.clear();
}
pub fn get_actions(&self) -> Vec<DrawAction> {
self.actions.iter().cloned().collect()
}
}