use alloc::{borrow::Cow, collections::BTreeMap, vec::Vec};
use num_enum::{IntoPrimitive as Into, TryFromPrimitive as TryFrom};
#[repr(u32)]
#[derive(Debug, Copy, Clone, Into, TryFrom)]
pub enum Category {
Media = 0x00,
Office = 0x01,
System = 0x02,
Coding = 0x03,
Internet = 0x04,
Gaming = 0x05,
Science = 0x06,
Education = 0x07,
Life = 0x08,
Finance = 0x09,
}
#[derive(Debug)]
pub struct File<'a> {
pub path: Cow<'a, str>,
pub data: Cow<'a, [u8]>,
}
#[derive(Debug)]
pub enum Nucleide<'a> {
LocalizedNames(BTreeMap<u32, Cow<'a, str>>),
LocalizedDescriptions(BTreeMap<u32, Cow<'a, str>>),
ThemedIcons(Vec<File<'a>>),
LocalizedAssets(BTreeMap<u32, File<'a>>),
Tags(Vec<Cow<'a, str>>),
Categories(Vec<Category>),
Developer(Cow<'a, str>),
}