use serde::{Deserialize, Serialize};
use strum::Display;
#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Serialize, Deserialize)]
pub struct Page {
pub id: usize, pub key: String, pub title: String, pub latest: PageLatest, pub content_model: ContentModel, pub license: License, pub source_or_url: String,
}
#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Serialize, Deserialize)]
pub struct PageLatest {
pub id: usize, pub timestamp: String, }
#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Serialize, Deserialize)]
pub struct Language {
code: String, name: String, key: String, title: String, }
#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Serialize, Deserialize)]
pub struct License {
pub url: String, pub title: String, }
#[derive(
Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Display, Serialize, Deserialize,
)]
#[serde(rename_all = "lowercase")]
pub enum ContentModel {
WikiText, CSS,
JavaScript,
JSON,
Text,
}