use std::any::TypeId;
use std::collections::HashMap;
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum VersionKey {
Entity(String),
Resource(TypeId),
}
#[derive(Debug, Default)]
pub struct VersionManager {
versions: HashMap<VersionKey, u64>,
}
impl VersionManager {
pub fn new() -> Self {
Self::default()
}
pub fn get_version(&self, key: &VersionKey) -> Option<u64> {
self.versions.get(key).copied()
}
pub fn set_version(&mut self, key: VersionKey, version: u64) {
self.versions.insert(key, version);
}
pub fn remove_version(&mut self, key: &VersionKey) {
self.versions.remove(key);
}
pub fn clear(&mut self) {
self.versions.clear();
}
}