shex_ast/
pred.rs

1use iri_s::IriS;
2use rbe::Key;
3use serde::Serialize;
4use std::fmt::Display;
5
6#[derive(PartialEq, Eq, Hash, Debug, Default, Clone, Serialize)]
7pub struct Pred {
8    iri: IriS,
9}
10
11impl Pred {
12    pub fn new(iri: IriS) -> Self {
13        Pred { iri }
14    }
15
16    pub fn new_unchecked(str: &str) -> Self {
17        Pred {
18            iri: IriS::new_unchecked(str),
19        }
20    }
21
22    pub fn iri(&self) -> &IriS {
23        &self.iri
24    }
25}
26
27impl Display for Pred {
28    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
29        write!(f, "{}", self.iri)
30    }
31}
32
33impl From<IriS> for Pred {
34    fn from(iri: IriS) -> Self {
35        Pred { iri }
36    }
37}
38
39impl Key for Pred {}