use std::fmt::{self, Display};
use markdown::mdast::Definition;
pub struct ReferenceRef<'a> {
definition: &'a Definition,
}
impl ReferenceRef<'_> {
pub fn id(&self) -> &str {
&self.definition.identifier
}
pub fn url(&self) -> &str {
&self.definition.url
}
pub fn to_owned(&self) -> (String, String) {
(self.id().to_owned(), self.url().to_owned())
}
}
impl<'a> ReferenceRef<'a> {
pub(super) fn from_definition(definition: &'a Definition) -> Self {
Self { definition }
}
}
impl Display for ReferenceRef<'_> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"[{}]: {}",
self.definition.identifier, self.definition.url
)
}
}