raphtory 0.17.0

raphtory, a temporal graph library
Documentation
use super::time_from_input;
use crate::{
    core::entities::nodes::node_ref::AsNodeRef,
    db::{api::view::StaticGraphViewOps, graph::edge::EdgeView},
    errors::{into_graph_err, GraphError},
};
use raphtory_api::core::{
    entities::edges::edge_ref::EdgeRef,
    utils::time::{IntoTimeWithFormat, TryIntoInputTime},
};
use raphtory_storage::mutation::{
    addition_ops::InternalAdditionOps, deletion_ops::InternalDeletionOps,
};

pub trait DeletionOps:
    InternalDeletionOps<Error: Into<GraphError>>
    + InternalAdditionOps<Error: Into<GraphError>>
    + StaticGraphViewOps
    + Sized
{
    fn delete_edge<V: AsNodeRef, T: TryIntoInputTime>(
        &self,
        t: T,
        src: V,
        dst: V,
        layer: Option<&str>,
    ) -> Result<EdgeView<Self>, GraphError> {
        let ti = time_from_input(self, t).map_err(into_graph_err)?;
        let src_id = self
            .resolve_node(src.as_node_ref())
            .map_err(into_graph_err)?
            .inner();
        let dst_id = self
            .resolve_node(dst.as_node_ref())
            .map_err(into_graph_err)?
            .inner();
        let layer = self.resolve_layer(layer).map_err(into_graph_err)?.inner();
        let eid = self
            .internal_delete_edge(ti, src_id, dst_id, layer)
            .map_err(into_graph_err)?
            .inner();
        Ok(EdgeView::new(
            self.clone(),
            EdgeRef::new_outgoing(eid, src_id, dst_id).at_layer(layer),
        ))
    }

    fn delete_edge_with_custom_time_format<V: AsNodeRef>(
        &self,
        t: &str,
        fmt: &str,
        src: V,
        dst: V,
        layer: Option<&str>,
    ) -> Result<EdgeView<Self>, GraphError> {
        let time: i64 = t.parse_time(fmt)?;
        self.delete_edge(time, src, dst, layer)
    }
}

impl<
        T: InternalDeletionOps<Error: Into<GraphError>>
            + InternalAdditionOps<Error: Into<GraphError>>
            + StaticGraphViewOps
            + Sized,
    > DeletionOps for T
{
}