ekg_namespace/literal/
id_url_display.rs

1use {
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}