1use crate::Value;
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq)]
4pub enum EntityRef {
5 Node(u64),
6 Rel(u64),
7}
8
9pub trait StorageAdapter {
12 type Error: std::error::Error + Send + Sync + 'static;
13
14 fn resolve(&self, entity: EntityRef) -> Result<Option<u64>, Self::Error>;
15 fn get_property(&self, entity: EntityRef, key: &str) -> Result<Value, Self::Error>;
16 fn set_property(
17 &mut self,
18 entity: EntityRef,
19 key: &str,
20 value: Value,
21 ) -> Result<(), Self::Error>;
22 fn remove_property(&mut self, entity: EntityRef, key: &str) -> Result<(), Self::Error>;
23}