isbnlib/enums/
toc_enum.rsuse serde::{Deserialize, Serialize};
use serde_json;
use crate::jsonb::edition_toc::EditionToC;
#[derive(
Serialize,
Deserialize,
Debug,
Clone,
PartialEq,
)]
#[serde(untagged)]
pub enum ToCEnum {
String(String),
ToC(EditionToC)
}
impl ToCEnum {
pub fn to_json(self) -> serde_json::Value {
match self {
ToCEnum::String(string) => {
serde_json::json!({
"String": string
})
}
ToCEnum::ToC(content) => {
let level = content.level.unwrap_or(0);
let title = content.title.unwrap_or(String::new());
let class = content.class.unwrap_or(String::new());
serde_json::json!({
"level": level,
"title": title,
"class": class
})
}
}
}
}