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 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}