Store

Trait Store 

Source
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§

Source

fn create_id(&self, id: &mut ID) -> Result<(), StoreError>

Create ID.

Source

fn get_class(&self, id: &ID) -> Result<Option<Class>, StoreError>

Get class.

Source

fn add_class(&self, class: Class) -> Result<(), StoreError>

Add class.

Source

fn get_vertex_template( &self, id: &ID, ) -> Result<Option<VertexTemplate>, StoreError>

Get vertex template.

Source

fn add_vertex_template( &self, vertex_template: VertexTemplate, ) -> Result<(), StoreError>

Add vertex template.

Checks to make sure we aren’t creating infinite nesting.

Source

fn get_edge_template(&self, id: &ID) -> Result<Option<EdgeTemplate>, StoreError>

Get edge template.

Source

fn add_edge_template( &self, edge_template: EdgeTemplate, ) -> Result<(), StoreError>

Add edge template.

Source

fn get_vertex(&self, id: &ID) -> Result<Option<Vertex>, StoreError>

Get vertex.

Source

fn get_vertexes( &self, directories: Option<Vec<Directory>>, ) -> Result<Vec<Vertex>, StoreError>

Get vertexes.

Source

fn add_vertex(&self, vertex: Vertex) -> Result<(), StoreError>

Add vertex.

Source

fn get_edge(&self, id: &ID) -> Result<Option<Edge>, StoreError>

Get edge.

Source

fn add_edge(&self, edge: Edge) -> Result<(), StoreError>

Add edge.

Implementors§

Source§

impl Store for InMemoryStore

Source§

impl<StoreT> Store for StoreWrapper<StoreT>
where StoreT: Store,