pub struct AbstractOutputChanges<S: Semantics> {
pub new_nodes: HashMap<AbstractOutputNodeMarker, S::NodeAbstract>,
pub new_edges: HashMap<AbstractSignatureEdgeId, S::EdgeAbstract>,
pub maybe_changed_nodes: HashMap<SubstMarker, S::NodeAbstract>,
pub maybe_changed_edges: HashMap<ParameterEdgeId, S::EdgeAbstract>,
pub maybe_deleted_nodes: HashSet<SubstMarker>,
pub maybe_deleted_edges: HashSet<ParameterEdgeId>,
}Expand description
The changes to the graph that an operation will cause.
Fields§
§new_nodes: HashMap<AbstractOutputNodeMarker, S::NodeAbstract>New nodes that are guaranteed to be created with a value of the given type.
new_edges: HashMap<AbstractSignatureEdgeId, S::EdgeAbstract>New edges that are guaranteed to be created with a value of the given type.
maybe_changed_nodes: HashMap<SubstMarker, S::NodeAbstract>Pre-existing nodes that may have been modified to be of the given type.
maybe_changed_edges: HashMap<ParameterEdgeId, S::EdgeAbstract>Pre-existing edges that may have been modified to be of the given type.
maybe_deleted_nodes: HashSet<SubstMarker>Pre-existing nodes that may have been deleted by the operation.
maybe_deleted_edges: HashSet<ParameterEdgeId>Pre-existing edges that may have been deleted by the operation.
Implementations§
Source§impl<S: Semantics> AbstractOutputChanges<S>
impl<S: Semantics> AbstractOutputChanges<S>
pub fn new() -> Self
Sourcepub fn is_subtype_of(&self, other: &Self) -> bool
pub fn is_subtype_of(&self, other: &Self) -> bool
Returns true if self can be used wherever other is expected, i.e., self <: other.
pub fn apply_abstract( &self, g: &mut GraphWithSubstitution<'_, AbstractGraph<S>>, ) -> AbstractOperationOutput<S>
Trait Implementations§
Source§impl<S: Semantics> Clone for AbstractOutputChanges<S>
impl<S: Semantics> Clone for AbstractOutputChanges<S>
Source§impl<S: Semantics> Debug for AbstractOutputChanges<S>where
HashMap<AbstractOutputNodeMarker, S::NodeAbstract>: Debug,
HashMap<AbstractSignatureEdgeId, S::EdgeAbstract>: Debug,
HashMap<SubstMarker, S::NodeAbstract>: Debug,
HashMap<ParameterEdgeId, S::EdgeAbstract>: Debug,
impl<S: Semantics> Debug for AbstractOutputChanges<S>where
HashMap<AbstractOutputNodeMarker, S::NodeAbstract>: Debug,
HashMap<AbstractSignatureEdgeId, S::EdgeAbstract>: Debug,
HashMap<SubstMarker, S::NodeAbstract>: Debug,
HashMap<ParameterEdgeId, S::EdgeAbstract>: Debug,
Source§impl<'de, S> Deserialize<'de> for AbstractOutputChanges<S>where
S: SemanticsSerde + Semantics,
impl<'de, S> Deserialize<'de> for AbstractOutputChanges<S>where
S: SemanticsSerde + Semantics,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl<S> Freeze for AbstractOutputChanges<S>
impl<S> RefUnwindSafe for AbstractOutputChanges<S>
impl<S> Send for AbstractOutputChanges<S>
impl<S> Sync for AbstractOutputChanges<S>
impl<S> Unpin for AbstractOutputChanges<S>
impl<S> UnsafeUnpin for AbstractOutputChanges<S>
impl<S> UnwindSafe for AbstractOutputChanges<S>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more