ekg_namespace/literal/
id_url_display.rs1use {
2 crate::literal::this::Literal,
3 std::fmt::{Display, Formatter},
4};
5
6pub struct LiteralIdUrlDisplay<'a> {
7 pub(crate) literal: &'a Literal,
8 pub(crate) id_base_iri: &'a fluent_uri::Uri<&'a str>,
9}
10
11impl<'a> Display for LiteralIdUrlDisplay<'a> {
12 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13 if self.literal.is_id_iri(self.id_base_iri) {
14 write!(
15 f,
16 "{}",
17 self.literal
18 .as_id(self.id_base_iri)
19 .map_err(|_| std::fmt::Error)?
20 )
21 } else {
22 write!(f, "{:}", self.literal.to_string().as_str())
23 }
24 }
25}