use serde::{Serialize, Deserialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Bookmark {
pub checksum: String,
pub roots: Roots,
pub sync_metadata: String,
pub version: i64,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Roots {
pub bookmark_bar: BookmarkBar,
pub other: BookmarkBar,
pub synced: BookmarkBar,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct BookmarkBar {
pub children: Vec<BookmarkBarChild>,
pub date_added: String,
pub date_last_used: String,
pub date_modified: String,
pub guid: String,
pub id: String,
pub name: String,
pub source: String,
#[serde(rename = "type")]
pub bookmark_bar_type: Type,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Type {
Folder,
Url,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct BookmarkBarChild {
pub children: Vec<PurpleChild>,
pub date_added: String,
pub date_last_used: String,
pub date_modified: String,
pub guid: String,
pub id: String,
pub name: String,
pub source: Source,
#[serde(rename = "type")]
pub child_type: Type,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct PurpleChild {
pub date_added: String,
pub date_last_used: String,
pub guid: String,
pub id: String,
pub name: String,
pub show_icon: Option<bool>,
pub source: Source,
#[serde(rename = "type")]
pub child_type: Type,
pub url: Option<String>,
pub visit_count: Option<i64>,
pub children: Option<Vec<FluffyChild>>,
pub date_modified: Option<String>,
pub meta_info: Option<MetaInfo>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct FluffyChild {
pub date_added: String,
pub date_last_used: String,
pub guid: String,
pub id: String,
pub name: String,
pub show_icon: Option<bool>,
pub source: Source,
#[serde(rename = "type")]
pub child_type: Type,
pub url: Option<String>,
pub visit_count: Option<i64>,
pub children: Option<Vec<FluffyChild>>,
pub date_modified: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Source {
#[serde(rename = "import_fre")]
ImportFre,
#[serde(rename = "user_add")]
UserAdd,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct MetaInfo {
pub power_bookmark_meta: String,
}