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