2021-12-14 22:33:54 +08:00

51 lines
1.2 KiB
Rust

use serde::{Deserialize, Serialize};
/// Define the `profiles.yaml` schema
#[derive(Default, Debug, Clone, Deserialize, Serialize)]
pub struct ProfilesConfig {
/// current profile's name
pub current: Option<u32>,
/// profile list
pub items: Option<Vec<ProfileItem>>,
}
#[derive(Default, Debug, Clone, Deserialize, Serialize)]
pub struct ProfileItem {
/// profile name
pub name: Option<String>,
/// profile file
pub file: Option<String>,
/// current mode
pub mode: Option<String>,
/// source url
pub url: Option<String>,
/// selected infomation
pub selected: Option<Vec<ProfileSelected>>,
/// user info
pub extra: Option<ProfileExtra>,
}
#[derive(Default, Debug, Clone, Deserialize, Serialize)]
pub struct ProfileSelected {
pub name: Option<String>,
pub now: Option<String>,
}
#[derive(Default, Debug, Clone, Copy, Deserialize, Serialize)]
pub struct ProfileExtra {
pub upload: u64,
pub download: u64,
pub total: u64,
pub expire: u64,
}
#[derive(Default, Debug, Clone, Deserialize, Serialize)]
/// the result from url
pub struct ProfileResponse {
pub name: String,
pub file: String,
pub data: String,
pub extra: ProfileExtra,
}