diff --git a/src/models/api.rs b/src/models/api.rs index 49fe1eb..2ed7415 100644 --- a/src/models/api.rs +++ b/src/models/api.rs @@ -1,6 +1,7 @@ +use std::default::Default; + use serde::{Deserialize, Serialize}; -// mod models { #[derive(Debug, Deserialize, Serialize)] pub struct API { @@ -8,4 +9,13 @@ pub struct API { pub endpoint: String, pub version: String, } -// } + +impl Default for API { + fn default() -> Self { + API { + url: String::from(""), + endpoint: String::from(""), + version: String::from(""), + } + } +} \ No newline at end of file diff --git a/src/models/flags.rs b/src/models/flags.rs index ee07178..9be619b 100644 --- a/src/models/flags.rs +++ b/src/models/flags.rs @@ -1,9 +1,18 @@ +use std::default::Default; + use serde::{Deserialize, Serialize}; -// mod models { #[derive(Debug, Deserialize, Serialize)] pub struct Flags { pub flag: String, pub value: String, } -// } + +impl Default for Flags { + fn default() -> Self { + Flags { + flag: String::new(), + value: String::new(), + } + } +} diff --git a/src/models/icarus_action.rs b/src/models/icarus_action.rs index 47916ce..bc8f687 100644 --- a/src/models/icarus_action.rs +++ b/src/models/icarus_action.rs @@ -1,8 +1,9 @@ +use std::default::Default; + use serde::{Deserialize, Serialize}; use crate::models; -// mod models { #[derive(Debug, Deserialize, Serialize)] pub struct IcarusAction { @@ -10,6 +11,15 @@ pub struct IcarusAction { pub flags: Vec, } +impl Default for IcarusAction { + fn default() -> Self { + IcarusAction { + action: String::new(), + flags: Vec::new(), + } + } +} + impl IcarusAction { // TODO: Implement pub fn retrieve_flag_value(&self, flag: &String) -> String { @@ -19,4 +29,3 @@ impl IcarusAction { // TODO: Implement pub fn print_action_and_flags(&self) {} } -// } diff --git a/src/models/song.rs b/src/models/song.rs index d7ce412..ad4e98d 100644 --- a/src/models/song.rs +++ b/src/models/song.rs @@ -1,23 +1,43 @@ +use std::default::Default; + use serde::{Deserialize, Serialize}; -// mod models { #[derive(Debug, Deserialize, Serialize)] pub struct Song { - pub id: i32, - pub title: String, - pub artist: String, - pub album: String, - pub genre: String, - pub year: i32, - pub duration: f64, - pub track: i32, - pub disc: i32, - pub data: String, + pub id: Option, + pub title: Option, + pub artist: Option, + pub album: Option, + pub genre: Option, + pub year: Option, + pub duration: Option, + pub track: Option, + pub disc: Option, + pub data: Option, // use filepath instead // pub song_path: String, - pub filepath: String, - pub directory: String, + pub filepath: Option, + pub directory: Option, +} + +impl Default for Song { + fn default() -> Self { + Song { + id: None, + title: None, + artist: None, + album: None, + genre: None, + year: None, + duration: None, + track: None, + disc: None, + data: None, + filepath: None, + directory: None, + } + } } impl Song { @@ -42,8 +62,17 @@ impl Song { #[derive(Debug, Deserialize, Serialize)] pub struct CoverArt { - pub id: i32, - pub title: String, - pub path: String, + pub id: Option, + pub title: Option, + pub path: Option, +} + +impl Default for CoverArt { + fn default() -> Self { + CoverArt { + id: None, + title: None, + path: None, + } + } } -// } diff --git a/src/models/token.rs b/src/models/token.rs index 07fbe6b..73a3bb2 100644 --- a/src/models/token.rs +++ b/src/models/token.rs @@ -1,11 +1,21 @@ +use std::default::Default; + use serde::{Deserialize, Serialize}; -// mod models { #[derive(Debug, Deserialize, Serialize)] pub struct Token { - pub access_token: String, - pub token_type: String, - pub expiration: i32, + pub access_token: Option, + pub token_type: Option, + pub expiration: Option, +} + +impl Default for Token { + fn default() -> Self { + Token { + access_token: None, + token_type: None, + expiration: None, + } + } } -// } diff --git a/src/models/upload_form.rs b/src/models/upload_form.rs index 4ca2548..903d5b4 100644 --- a/src/models/upload_form.rs +++ b/src/models/upload_form.rs @@ -1,10 +1,19 @@ +use std::default::Default; + use serde::{Deserialize, Serialize}; -// mod models { #[derive(Debug, Deserialize, Serialize)] pub struct UploadForm { - pub url: String, - pub filepath: String, + pub url: Option, + pub filepath: Option, } -// } + +impl Default for UploadForm { + fn default() -> Self { + UploadForm { + url: None, + filepath: None, + } + } +} \ No newline at end of file diff --git a/src/models/user.rs b/src/models/user.rs index 3f6d277..54c20cf 100644 --- a/src/models/user.rs +++ b/src/models/user.rs @@ -1,4 +1,5 @@ -// mod models { +use std::default::Default; + use serde::{Deserialize, Serialize}; #[derive(Debug, Deserialize, Serialize)] @@ -6,4 +7,12 @@ pub struct User { pub username: String, pub password: String, } -// } + +impl Default for User { + fn default() -> Self { + User { + username: String::new(), + password: String::new(), + } + } +}