use std::collections::HashMap;
use url::Url;
#[derive(Debug, serde::Deserialize, serde::Serialize)]
pub struct DefinitionList {
pub list: Vec<Definition>,
#[serde(flatten)]
pub unknown: HashMap<String, serde_json::Value>,
}
#[derive(Debug, serde::Deserialize, serde::Serialize)]
pub struct Definition {
pub author: String,
pub current_vote: String,
pub defid: u64,
pub definition: String,
pub example: String,
pub permalink: Url,
pub thumbs_down: u64,
pub thumbs_up: u64,
pub word: String,
pub written_on: String,
#[serde(flatten)]
pub unknown: HashMap<String, serde_json::Value>,
}
impl Definition {
pub fn get_raw_definition(&self) -> String {
self.definition
.chars()
.filter(|&c| c != '[' && c != ']')
.collect()
}
pub fn get_raw_example(&self) -> String {
self.example
.chars()
.filter(|&c| c != '[' && c != ']')
.collect()
}
}