use crate::PassageContent;
use crate::Passage;
use crate::PassageHeader;
use crate::TwineContent;
pub struct TwinePassage {
pub header: PassageHeader,
pub content: TwineContent,
}
impl TwinePassage {
pub fn metadata(&self) -> &serde_json::Map<String, serde_json::Value> {
&self.header.metadata
}
pub fn tags(&self) -> &Vec<String> {
&self.header.tags
}
}
impl std::convert::From<Passage> for TwinePassage {
fn from(passage: Passage) -> Self {
let header = passage.header;
let content = if let PassageContent::Normal(content) = passage.content {
content
} else {
panic!("");
};
TwinePassage { header, content }
}
}