1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use crate::storage::DatastoreRef;
use solomon_gremlin::process::traversal::GraphTraversalSource;
use super::GraphTerminator;
type TraversalSource<'a> = GraphTraversalSource<GraphTerminator<'a>>;
pub struct Database<'a> {
traversal: TraversalSource<'a>,
}
impl<'a> Database<'a> {
pub fn new(ds_ref: DatastoreRef<'a>) -> Self {
let terminator = GraphTerminator::new(ds_ref);
let traversal = GraphTraversalSource::new(terminator);
Database {
traversal,
}
}
pub fn traverse(&self) -> TraversalSource {
self.traversal.clone()
}
}
crate::full_database_test_impl!(redb_test, "redb");
crate::full_database_test_impl!(rocksdb_test, "rocksdb");