pub struct ExampleSemantics;Trait Implementations§
Source§impl Semantics for ExampleSemantics
impl Semantics for ExampleSemantics
Source§type NodeConcrete = NodeValue
type NodeConcrete = NodeValue
A data graph’s nodes contain values of this type.
PL analogy: values.
Source§type NodeAbstract = NodeType
type NodeAbstract = NodeType
An operation can define patterns for nodes using this type.
PL analogy: types.
Source§type EdgeConcrete = String
type EdgeConcrete = String
A data graph’s edges contain values of this type.
PL analogy: values.
Source§type EdgeAbstract = EdgeType
type EdgeAbstract = EdgeType
An operation can define patterns for edges using this type.
PL analogy: types.
Source§type NodeMatcher = NodeMatcher
type NodeMatcher = NodeMatcher
The specific matching process for nodes.
Source§type EdgeMatcher = EdgeMatcher
type EdgeMatcher = EdgeMatcher
The specific matching process for edges.
Source§type NodeJoin = NodeJoiner
type NodeJoin = NodeJoiner
The specific join process for nodes.
Source§type EdgeJoin = EdgeJoiner
type EdgeJoin = EdgeJoiner
The specific join process for edges.
type NodeConcreteToAbstract = NodeConcreteToAbstract
type EdgeConcreteToAbstract = EdgeConcreteToAbstract
Source§type BuiltinOperation = ExampleOperation
type BuiltinOperation = ExampleOperation
Builtin operations are of this type.
Source§type BuiltinQuery = ExampleQuery
type BuiltinQuery = ExampleQuery
Queries are of this type
Source§fn top_node_abstract() -> Option<Self::NodeAbstract>
fn top_node_abstract() -> Option<Self::NodeAbstract>
Returns the top node of the abstract graph, if the semantics defines one.
This is mainly used for added ergonomics on LibBuiltinOperations, since they require explicit parameters.
If a semantics defines a top abstract node value, some of the LibBuiltinOperations can default to that abstract value.
Source§fn top_edge_abstract() -> Option<Self::EdgeAbstract>
fn top_edge_abstract() -> Option<Self::EdgeAbstract>
Returns the top edge of the abstract graph, if the semantics defines one.
This is mainly used for added ergonomics on LibBuiltinOperations, since they require explicit parameters.
If a semantics defines a top abstract edge value, some of the LibBuiltinOperations can default to that abstract value.
fn new_concrete_graph() -> ConcreteGraph<Self>
fn new_abstract_graph() -> AbstractGraph<Self>
fn join_edges( a: &Self::EdgeAbstract, b: &Self::EdgeAbstract, ) -> Option<Self::EdgeAbstract>
fn join_nodes( a: &Self::NodeAbstract, b: &Self::NodeAbstract, ) -> Option<Self::NodeAbstract>
fn concrete_to_abstract(c: &ConcreteGraph<Self>) -> AbstractGraph<Self>
Auto Trait Implementations§
impl Freeze for ExampleSemantics
impl RefUnwindSafe for ExampleSemantics
impl Send for ExampleSemantics
impl Sync for ExampleSemantics
impl Unpin for ExampleSemantics
impl UnwindSafe for ExampleSemantics
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