asset: implement Reflect for the ResourceManager

This commit is contained in:
SeanOMik 2025-01-11 20:47:36 -05:00
parent 9fc3d1eaaa
commit 173d957f25
Signed by: SeanOMik
GPG key ID: FEC9E2FC15235964

View file

@ -2,6 +2,7 @@ use std::{any::Any, collections::HashMap, path::Path, sync::{Arc, RwLock, RwLock
use async_std::task;
use crossbeam::channel::Receiver;
use lyra_reflect::Reflect;
use notify::{Watcher, RecommendedWatcher};
use notify_debouncer_full::{DebouncedEvent, FileIdMap};
use thiserror::Error;
@ -67,11 +68,16 @@ pub struct ResourceManagerState {
watchers: HashMap<String, ResourceWatcher>,
}
mod lyra_engine {
pub use lyra_reflect as reflect;
}
/// The ResourceManager
///
/// This exists since we need the manager to be `Send + Sync`.
#[derive(Clone)]
#[derive(Clone, Reflect)]
pub struct ResourceManager {
#[reflect(skip)]
inner: Arc<RwLock<ResourceManagerState>>,
}
@ -522,4 +528,4 @@ pub mod tests {
assert!(event.iter().any(|ev| ev.kind.is_remove() || ev.kind.is_modify()));
}
}
}