db/process/
endpoint.rs

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");