pub struct QueryPattern {
pub subject: Option<NodeId>,
pub predicate: Option<NodeId>,
pub object: Option<NodeId>,
}Expand description
Query pattern with bound/unbound positions
Fields§
§subject: Option<NodeId>Subject node ID (None = wildcard)
predicate: Option<NodeId>Predicate node ID (None = wildcard)
object: Option<NodeId>Object node ID (None = wildcard)
Implementations§
Source§impl QueryPattern
impl QueryPattern
Sourcepub fn new(s: Option<NodeId>, p: Option<NodeId>, o: Option<NodeId>) -> Self
pub fn new(s: Option<NodeId>, p: Option<NodeId>, o: Option<NodeId>) -> Self
Create a new query pattern
Sourcepub fn is_full_scan(&self) -> bool
pub fn is_full_scan(&self) -> bool
Check if all positions are unbound (full scan)
Sourcepub fn bound_count(&self) -> usize
pub fn bound_count(&self) -> usize
Count number of bound positions
Sourcepub fn selectivity(&self) -> f64
pub fn selectivity(&self) -> f64
Get selectivity factor (0.0 = very selective, 1.0 = not selective)
More bound positions = more selective = lower selectivity factor
Trait Implementations§
Source§impl Clone for QueryPattern
impl Clone for QueryPattern
Source§impl Debug for QueryPattern
impl Debug for QueryPattern
Source§impl Default for QueryPattern
impl Default for QueryPattern
impl Eq for QueryPattern
Source§impl Hash for QueryPattern
impl Hash for QueryPattern
Source§impl PartialEq for QueryPattern
impl PartialEq for QueryPattern
impl StructuralPartialEq for QueryPattern
Auto Trait Implementations§
impl Freeze for QueryPattern
impl RefUnwindSafe for QueryPattern
impl Send for QueryPattern
impl Sync for QueryPattern
impl Unpin for QueryPattern
impl UnsafeUnpin for QueryPattern
impl UnwindSafe for QueryPattern
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.impl<T> Fruit for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more