messing with Config 2: Electric Boogaloo

This commit is contained in:
MrDulfin 2024-01-17 07:20:51 -05:00
parent 4e33d20d18
commit 4e5a45e544
2 changed files with 21 additions and 72 deletions

View file

@ -1,8 +1,15 @@
use std::{path::PathBuf, marker::PhantomData};
use crate::music_storage::library::MusicLibrary;
#[derive(Debug, Default)]
struct ConfigLibrary {
name: String,
path: PathBuf,
}
#[derive(Debug, Default)]
pub struct Config {
db_path: Option<PathBuf>,
libraries: Vec<ConfigLibrary>
}
impl Config {

View file

@ -2,78 +2,20 @@ use std::{marker::PhantomData, fs::File, path::PathBuf};
use font::Font;
pub trait Setting {}
pub enum Setting {
String {
name: String,
value: String
},
Int {
name: String,
value: i32
},
Bool {
name: String,
value: bool
},
pub struct DropDown {
name: String,
//value: ???
}
impl Setting for DropDown {}
#[derive(Debug, Default)]
pub struct Slider {
name: String,
value: i32,
}
impl Setting for Slider {}
#[derive(Debug, Default)]
pub struct CheckBox {
name: String,
value: bool,
}
impl Setting for CheckBox {}
enum TextBoxSize {
Small,
Large,
}
#[derive(Debug, Default)]
pub struct TextBox<Size = TextBoxSize> {
name: String,
text: String,
size: PhantomData<Size>
}
impl Setting for TextBox {}
#[derive(Debug, Default)]
pub struct SingleSelect {
name: String,
value: bool,
}
impl Setting for SingleSelect {}
#[derive(Debug, Default)]
pub struct MultiSelect {
name: String,
value: bool,
}
impl Setting for MultiSelect {}
#[derive(Debug, Default)]
pub struct ConfigCounter {
name: String,
value: i32,
}
impl Setting for ConfigCounter {}
#[derive(Debug, Default)]
pub struct ConfigFont {
name: String,
value: Font,
}
impl Setting for ConfigFont {}
#[derive(Debug, Default)]
pub struct ConfigFile {
name: String,
value: PathBuf,
}
impl Setting for ConfigFile {}
#[derive(Debug, Default)]
pub struct List<T: Setting> {
items: Vec<T>
}
pub struct Form {