Skip to main content

PathSegment

Struct PathSegment 

Source
pub struct PathSegment { /* private fields */ }
Expand description

One parsed step of a relationship path.

Implementations§

Source§

impl PathSegment

Source

pub fn parse(text: &str) -> Result<Self, String>

Parses Relationship[|Relationship…][:direction][+].

§Errors

Returns why the text is no step: an empty alternative, one named twice, a direction other than forward, backward or either, or a direction written after an alternative other than the last.

Source

pub fn relationships(&self) -> &[SemanticRelationship]

The relationships the step may take, in the order written.

Source

pub fn direction(&self) -> TraversalDirection

The direction every alternative is taken in.

Source

pub fn chain(&self) -> bool

Whether the step is taken one or more times (a trailing +).

Source

pub fn reversed(&self) -> Self

The same step taken the other way.

Source

pub fn shown(&self) -> String

How messages name the step’s relationships: A or A|B.

Source

pub fn walk( &self, service: &RelationshipSelectionServiceHandle, from: &ObjectId, everything: &[ObjectId], scope: &[ObjectId], chain: bool, absent_ends: AbsentEndPolicy, ) -> Result<(BTreeSet<ObjectId>, Vec<Evidence>), RelationshipSelectionError>

The objects of scope the step reaches from from, taken once or, with chain, one or more times, with the service’s evidence.

A chain through several relationships hops between objects of everything, each hop following any alternative’s own chain, and keeps what lies in scope. from is never among the result.

§Errors

Returns the service’s error for the first query it cannot answer completely.

Trait Implementations§

Source§

impl Clone for PathSegment

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PathSegment

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for PathSegment

Source§

impl PartialEq for PathSegment

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for PathSegment

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.