pub enum PropertyPath {
Predicate(NamedNode),
Inverse(Box<PropertyPath>),
Sequence(Box<PropertyPath>, Box<PropertyPath>),
Alternative(Box<PropertyPath>, Box<PropertyPath>),
ZeroOrMore(Box<PropertyPath>),
OneOrMore(Box<PropertyPath>),
ZeroOrOne(Box<PropertyPath>),
NegatedPropertySet(Vec<NamedNode>),
FixedLength(Box<PropertyPath>, usize),
RangeLength(Box<PropertyPath>, usize, Option<usize>),
Distinct(Box<PropertyPath>),
}Expand description
Property path expression
Variants§
Predicate(NamedNode)
Direct predicate (e.g., :knows)
Inverse(Box<PropertyPath>)
Inverse path (e.g., ^:knows)
Sequence(Box<PropertyPath>, Box<PropertyPath>)
Sequence of paths (e.g., :knows/:worksFor)
Alternative(Box<PropertyPath>, Box<PropertyPath>)
Alternative paths (e.g., :knows|:friendOf)
ZeroOrMore(Box<PropertyPath>)
Zero or more repetitions (e.g., :knows*)
OneOrMore(Box<PropertyPath>)
One or more repetitions (e.g., :knows+)
ZeroOrOne(Box<PropertyPath>)
Zero or one occurrence (e.g., :knows?)
NegatedPropertySet(Vec<NamedNode>)
Negated property set (e.g., !(:knows|:hates))
FixedLength(Box<PropertyPath>, usize)
Fixed length path (SPARQL 1.2 extension)
RangeLength(Box<PropertyPath>, usize, Option<usize>)
Range length path (SPARQL 1.2 extension)
Distinct(Box<PropertyPath>)
Distinct path (SPARQL 1.2 extension)
Implementations§
Source§impl PropertyPath
impl PropertyPath
Sourcepub fn inverse(path: PropertyPath) -> Self
pub fn inverse(path: PropertyPath) -> Self
Create an inverse path
Sourcepub fn sequence(left: PropertyPath, right: PropertyPath) -> Self
pub fn sequence(left: PropertyPath, right: PropertyPath) -> Self
Create a sequence path
Sourcepub fn alternative(left: PropertyPath, right: PropertyPath) -> Self
pub fn alternative(left: PropertyPath, right: PropertyPath) -> Self
Create an alternative path
Sourcepub fn zero_or_more(path: PropertyPath) -> Self
pub fn zero_or_more(path: PropertyPath) -> Self
Create a zero-or-more path
Sourcepub fn one_or_more(path: PropertyPath) -> Self
pub fn one_or_more(path: PropertyPath) -> Self
Create a one-or-more path
Sourcepub fn zero_or_one(path: PropertyPath) -> Self
pub fn zero_or_one(path: PropertyPath) -> Self
Create a zero-or-one path
Sourcepub fn negated_set(predicates: Vec<NamedNode>) -> Self
pub fn negated_set(predicates: Vec<NamedNode>) -> Self
Create a negated property set
Sourcepub fn fixed_length(path: PropertyPath, n: usize) -> Self
pub fn fixed_length(path: PropertyPath, n: usize) -> Self
Create a fixed length path (SPARQL 1.2)
Sourcepub fn range_length(path: PropertyPath, min: usize, max: Option<usize>) -> Self
pub fn range_length(path: PropertyPath, min: usize, max: Option<usize>) -> Self
Create a range length path (SPARQL 1.2)
Sourcepub fn distinct(path: PropertyPath) -> Self
pub fn distinct(path: PropertyPath) -> Self
Create a distinct path (SPARQL 1.2)
Sourcepub fn min_length(&self) -> usize
pub fn min_length(&self) -> usize
Get the minimum length of this path
Sourcepub fn max_length(&self) -> Option<usize>
pub fn max_length(&self) -> Option<usize>
Get the maximum length of this path (None = unbounded)
Sourcepub fn predicates(&self) -> HashSet<&NamedNode>
pub fn predicates(&self) -> HashSet<&NamedNode>
Collect all predicates mentioned in this path
Trait Implementations§
Source§impl Clone for PropertyPath
impl Clone for PropertyPath
Source§fn clone(&self) -> PropertyPath
fn clone(&self) -> PropertyPath
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PropertyPath
impl Debug for PropertyPath
Source§impl Display for PropertyPath
impl Display for PropertyPath
Source§impl Hash for PropertyPath
impl Hash for PropertyPath
Source§impl PartialEq for PropertyPath
impl PartialEq for PropertyPath
impl Eq for PropertyPath
impl StructuralPartialEq for PropertyPath
Auto Trait Implementations§
impl Freeze for PropertyPath
impl RefUnwindSafe for PropertyPath
impl Send for PropertyPath
impl Sync for PropertyPath
impl Unpin for PropertyPath
impl UnsafeUnpin for PropertyPath
impl UnwindSafe for PropertyPath
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.