euv_engine/asset/
struct.rs1use crate::*;
2
3#[derive(Clone, Data, Debug, New, PartialEq)]
5pub struct AssetEntry {
6 #[get(type(copy))]
8 pub(crate) asset_type: AssetType,
9 #[get(type(copy))]
11 pub(crate) state: AssetState,
12 #[get(type(clone))]
14 pub(crate) image: Option<HtmlImageElement>,
15 pub(crate) url: String,
17}
18
19#[derive(Clone, Data, Debug, New, PartialEq)]
21pub struct AssetCache {
22 #[get(pub(crate))]
24 #[get_mut(pub(crate))]
25 #[set(pub(crate))]
26 #[new(skip)]
27 pub(crate) entries: HashMap<String, AssetEntry>,
28}
29
30#[derive(Clone, Data, New)]
33pub struct AssetLoader {
34 #[new(skip)]
36 pub(crate) cache: Rc<RefCell<AssetCache>>,
37 #[get(pub(crate), type(copy))]
39 #[get_mut(pub(crate))]
40 #[set(pub(crate))]
41 #[new(skip)]
42 pub(crate) pending_count: u32,
43}