Skip to main content

LinkRule

Struct LinkRule 

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

Composable rule over links.

Implementations§

Source§

impl LinkRule

Source

pub const fn query(query: LinkQuery) -> Self

Wraps an existing structural query as a composable rule.

Source

pub fn kind(kind: impl Into<String>) -> Self

Matches links by metadata term/kind.

Matches links by link type.

Source

pub fn capture(name: impl Into<String>, rule: Self) -> Self

Captures links selected by rule.

Source

pub fn typed_metavariable( name: impl Into<String>, kind: impl Into<String>, ) -> Self

Captures links whose kind matches kind.

Source

pub fn inside(rule: Self, ancestor: Self) -> Self

Matches rule only when selected links are inside ancestor.

Source

pub fn has(rule: Self, descendant: Self) -> Self

Matches rule only when selected links contain a descendant.

Source

pub fn precedes(rule: Self, following: Self) -> Self

Matches rule only when selected links precede following.

Source

pub fn follows(rule: Self, preceding: Self) -> Self

Matches rule only when selected links follow preceding.

Source

pub fn all(rules: impl Into<Vec<Self>>) -> Self

Intersects rules by selected link id.

Source

pub fn any(rules: impl Into<Vec<Self>>) -> Self

Unions rules by selected link id.

Source

pub fn negate(rule: Self) -> Self

Selects links not selected by rule.

Source

pub fn named(name: impl Into<String>) -> Self

Refers to a named rule in a LinkRuleRegistry.

Source

pub fn ellipsis_gap(before: Self, after: Self) -> Self

Matches a parent whose ordered children contain before ... after.

Source

pub fn text(pattern: impl Into<String>) -> Result<Self, LinkRuleParseError>

Matches a full document’s plain source text with {{capture}} holes.

Source

pub fn from_sexpression(source: &str) -> Result<Self, LinkRuleParseError>

Parses the documented rule-algebra S-expression surface.

Source

pub fn matches( &self, network: &LinkNetwork, registry: &LinkRuleRegistry, ) -> Vec<LinkRuleMatch>

Returns matches for this rule using registry for named sub-rules.

Trait Implementations§

Source§

impl Clone for LinkRule

Source§

fn clone(&self) -> LinkRule

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for LinkRule

Source§

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

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

impl Not for LinkRule

Source§

type Output = LinkRule

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl PartialEq for LinkRule

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for LinkRule

Source§

impl StructuralPartialEq for LinkRule

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
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
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
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The metadata type for pointers and references to this type.
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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.