rdf/
node.rs

1use uri::Uri;
2
3/// Node representation.
4#[derive(Clone, PartialEq, PartialOrd, Eq, Ord, Debug)]
5pub enum Node {
6    /// Node for representing a URI.
7    UriNode { uri: Uri },
8
9    /// Node for representing literals.
10    LiteralNode {
11        literal: String,
12        data_type: Option<Uri>,
13        language: Option<String>,
14    },
15
16    /// Node for representing blanks.
17    BlankNode { id: String },
18}
19
20#[cfg(test)]
21mod tests {
22    use node::*;
23
24    #[test]
25    fn access_literal_node() {
26        let node = Node::LiteralNode {
27            literal: "abcd".to_string(),
28            data_type: None,
29            language: None,
30        };
31
32        match node {
33            Node::LiteralNode {
34                literal: lit,
35                data_type: _,
36                language: _,
37            } => assert_eq!(lit, "abcd".to_string()),
38            _ => assert!(false),
39        }
40    }
41}