rdf_model/alloc/
heap_triple.rs1use crate::{HeapTerm, Statement, Term};
4
5#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
7#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
8pub struct HeapTriple {
9 s: HeapTerm,
10 p: HeapTerm,
11 o: HeapTerm,
12}
13
14impl Statement for HeapTriple {
15 fn subject(&self) -> &dyn Term {
16 &self.s
17 }
18
19 fn predicate(&self) -> &dyn Term {
20 &self.p
21 }
22
23 fn object(&self) -> &dyn Term {
24 &self.o
25 }
26}
27
28impl From<(HeapTerm, HeapTerm, HeapTerm)> for HeapTriple {
29 fn from((s, p, o): (HeapTerm, HeapTerm, HeapTerm)) -> Self {
30 Self { s, p, o }
31 }
32}