pub trait Store {
// Required methods
fn create_id(&self, id: &mut ID) -> Result<(), StoreError>;
fn get_class(&self, id: &ID) -> Result<Option<Class>, StoreError>;
fn add_class(&self, class: Class) -> Result<(), StoreError>;
fn get_vertex_template(
&self,
id: &ID,
) -> Result<Option<VertexTemplate>, StoreError>;
fn add_vertex_template(
&self,
vertex_template: VertexTemplate,
) -> Result<(), StoreError>;
fn get_edge_template(
&self,
id: &ID,
) -> Result<Option<EdgeTemplate>, StoreError>;
fn add_edge_template(
&self,
edge_template: EdgeTemplate,
) -> Result<(), StoreError>;
fn get_vertex(&self, id: &ID) -> Result<Option<Vertex>, StoreError>;
fn get_vertexes(
&self,
directories: Option<Vec<Directory>>,
) -> Result<Vec<Vertex>, StoreError>;
fn add_vertex(&self, vertex: Vertex) -> Result<(), StoreError>;
fn get_edge(&self, id: &ID) -> Result<Option<Edge>, StoreError>;
fn add_edge(&self, edge: Edge) -> Result<(), StoreError>;
}Expand description
Thread-safe access to a Floria store.
Implementations should ensure that cloning is cheap and clones always refer to the same shared state.
Required Methods§
Sourcefn get_vertex_template(
&self,
id: &ID,
) -> Result<Option<VertexTemplate>, StoreError>
fn get_vertex_template( &self, id: &ID, ) -> Result<Option<VertexTemplate>, StoreError>
Get vertex template.
Sourcefn add_vertex_template(
&self,
vertex_template: VertexTemplate,
) -> Result<(), StoreError>
fn add_vertex_template( &self, vertex_template: VertexTemplate, ) -> Result<(), StoreError>
Add vertex template.
Checks to make sure we aren’t creating infinite nesting.
Sourcefn get_edge_template(&self, id: &ID) -> Result<Option<EdgeTemplate>, StoreError>
fn get_edge_template(&self, id: &ID) -> Result<Option<EdgeTemplate>, StoreError>
Get edge template.
Sourcefn add_edge_template(
&self,
edge_template: EdgeTemplate,
) -> Result<(), StoreError>
fn add_edge_template( &self, edge_template: EdgeTemplate, ) -> Result<(), StoreError>
Add edge template.
Sourcefn get_vertex(&self, id: &ID) -> Result<Option<Vertex>, StoreError>
fn get_vertex(&self, id: &ID) -> Result<Option<Vertex>, StoreError>
Get vertex.
Sourcefn get_vertexes(
&self,
directories: Option<Vec<Directory>>,
) -> Result<Vec<Vertex>, StoreError>
fn get_vertexes( &self, directories: Option<Vec<Directory>>, ) -> Result<Vec<Vertex>, StoreError>
Get vertexes.
Sourcefn add_vertex(&self, vertex: Vertex) -> Result<(), StoreError>
fn add_vertex(&self, vertex: Vertex) -> Result<(), StoreError>
Add vertex.