pub struct Hyperedge {
pub predicate: String,
pub vertex_positions: Vec<Option<VertexId>>,
}Expand description
A positive body atom, as a hyperedge over VertexIds.
vertex_positions[i] = Some(vid) means argument position i of
the atom is the variable vid. vertex_positions[i] = None
means position i is either a constant or an anonymous wildcard
— both leave the position out of the join graph.
Fields§
§predicate: StringPredicate name, copied from the source Atom.
vertex_positions: Vec<Option<VertexId>>Per-argument vertex assignment. None for constants and
anonymous wildcards.
Implementations§
Trait Implementations§
impl Eq for Hyperedge
impl StructuralPartialEq for Hyperedge
Auto Trait Implementations§
impl Freeze for Hyperedge
impl RefUnwindSafe for Hyperedge
impl Send for Hyperedge
impl Sync for Hyperedge
impl Unpin for Hyperedge
impl UnsafeUnpin for Hyperedge
impl UnwindSafe for Hyperedge
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more