use std::fmt::{self, Display};
use crate::format;
#[derive(Debug, Clone, Default, PartialEq, Eq, Hash)]
pub struct Title(String);
impl Title {
pub fn parse(string: &str) -> Option<Self> {
let string = format::format(string, "-");
(!string.is_empty()).then_some(string).map(Self)
}
pub fn desluggify(&self) -> String {
let deslugify = self.0.clone().replace('-', " ");
format::first_letter_uppercase(&deslugify)
}
}
impl Display for Title {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "--{}", self.0)
}
}