Skip to main content

eldiron_shared/
asset.rs

1use theframework::prelude::*;
2
3#[derive(Serialize, Deserialize, PartialEq, Clone, Debug)]
4pub struct Asset {
5    pub id: Uuid,
6
7    pub name: String,
8    pub buffer: AssetBuffer,
9}
10
11impl Default for Asset {
12    fn default() -> Self {
13        Self::new()
14    }
15}
16
17impl Asset {
18    pub fn new() -> Self {
19        Self {
20            id: Uuid::new_v4(),
21
22            name: String::new(),
23            buffer: AssetBuffer::Empty,
24        }
25    }
26
27    /// Set the asset buffer
28    pub fn set_buffer(&mut self, buffer: AssetBuffer) {
29        self.buffer = buffer;
30    }
31}
32
33#[derive(Serialize, Deserialize, PartialEq, Clone, Debug)]
34pub enum AssetBuffer {
35    Empty,
36    Image(TheRGBABuffer),
37    Font(Vec<u8>),
38    Audio(Vec<u8>),
39}
40
41impl AssetBuffer {
42    pub fn to_string(self) -> &'static str {
43        match self {
44            AssetBuffer::Empty => "Empty",
45            AssetBuffer::Image(_) => "Image",
46            AssetBuffer::Font(_) => "Font",
47            AssetBuffer::Audio(_) => "Audio",
48        }
49    }
50}