1use crate::fact::Value;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
8pub enum PatternTerm {
9 Bound(Value),
10 Variable(String),
11}
12
13#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
16pub struct Pattern {
17 pub subject: PatternTerm,
18 pub predicate: PatternTerm,
19 pub object: PatternTerm,
20}
21
22impl Pattern {
23 pub fn new(subject: PatternTerm, predicate: PatternTerm, object: PatternTerm) -> Self {
24 Pattern {
25 subject,
26 predicate,
27 object,
28 }
29 }
30}