Struct IndexedBTreeDataset

Source
pub struct IndexedBTreeDataset<R = Term> { /* private fields */ }
Expand description

Indexed BTree-based RDF dataset, optimized for pattern matching operations.

Implementations§

Source§

impl<R> IndexedBTreeDataset<R>

Source

pub fn new() -> Self

Creates a new empty dataset.

Source

pub fn from_non_indexed(dataset: BTreeDataset<R>) -> Self

Creates a new indexed dataset from a non-indexed one.

Source

pub fn len(&self) -> usize

Returns the number of quads in the dataset.

Source

pub fn is_empty(&self) -> bool

Checks if the dataset is empty.

Source

pub fn iter(&self) -> Quads<'_, R>

Returns an iterator over the quads of the dataset.

Source

pub fn resources(&self) -> Resources<'_, R>

Returns an iterator over the resources of the dataset.

Source

pub fn subjects(&self) -> Subjects<'_, R>

Returns an iterator over the subjects of the dataset.

Source

pub fn predicates(&self) -> Predicates<'_, R>

Returns an iterator over the predicates of the dataset.

Source

pub fn objects(&self) -> Objects<'_, R>

Returns an iterator over the objects of the dataset.

Source

pub fn named_graphs(&self) -> NamedGraphs<'_, R>

Returns an iterator over the named graphs of the dataset.

Source§

impl<R: Ord> IndexedBTreeDataset<R>

Source

pub fn contains_resource(&self, resource: &R) -> bool

Checks if the provided resource appears in any quad in the dataset.

Source

pub fn contains(&self, quad: Quad<&R>) -> bool

Checks if the provided quad is in the dataset.

Source

pub fn insert(&mut self, quad: Quad<R>) -> bool

Inserts the given quad in the dataset.

Returns true if the quad was not already in the dataset, and false if it was.

Source

pub fn remove(&mut self, quad: Quad<&R>) -> bool

Removes the given quad from the dataset.

Returns whether or not the quad was in the dataset. Does nothing if the quad was not in the dataset.

Source

pub fn remove_graph(&mut self, graph: Option<&R>) -> Option<BTreeGraph<R>>
where R: Clone,

Removes the given graph from the dataset if it exists, and returns it.

Source

pub fn pattern_matching( &self, pattern: CanonicalQuadPattern<&R>, ) -> PatternMatching<'_, R>

Returns an iterator over all the quads matching the given canonical quad pattern.

Source

pub fn extract_pattern_matching( &mut self, pattern: CanonicalQuadPattern<&R>, ) -> ExtractPatternMatching<'_, R>

Returns an iterator over all the quads matching the given canonical quad pattern. The matching quads are removed from the dataset.

Trait Implementations§

Source§

impl<R: Clone> Clone for IndexedBTreeDataset<R>

Source§

fn clone(&self) -> IndexedBTreeDataset<R>

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<R> Dataset for IndexedBTreeDataset<R>

Source§

type Resource = R

Resource type.
Source§

impl<R: Clone + Ord> DatasetMut for IndexedBTreeDataset<R>

Source§

fn insert(&mut self, quad: Quad<Self::Resource>)

Inserts the given quad in the dataset.
Source§

fn remove(&mut self, quad: Quad<&Self::Resource>)

Removes the given quad from the dataset.
Source§

impl<R: Debug> Debug for IndexedBTreeDataset<R>

Source§

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

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

impl<R> Default for IndexedBTreeDataset<R>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<R: Clone + Ord> Extend<Quad<R>> for IndexedBTreeDataset<R>

Source§

fn extend<T: IntoIterator<Item = Quad<R>>>(&mut self, iter: T)

Extends a collection with the contents of an iterator. Read more
Source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
Source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
Source§

impl From<BTreeDataset> for IndexedBTreeDataset

Source§

fn from(value: BTreeDataset) -> Self

Converts to this type from the input type.
Source§

impl<R: Clone + Ord> FromIterator<Quad<R>> for IndexedBTreeDataset<R>

Source§

fn from_iter<T: IntoIterator<Item = Quad<R>>>(iter: T) -> Self

Creates a value from an iterator. Read more
Source§

impl<R: Hash> Hash for IndexedBTreeDataset<R>

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<'a, R> IntoIterator for &'a IndexedBTreeDataset<R>

Source§

type Item = Quad<&'a R>

The type of the elements being iterated over.
Source§

type IntoIter = Quads<'a, R>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<R: Clone> IntoIterator for IndexedBTreeDataset<R>

Source§

type Item = Quad<R>

The type of the elements being iterated over.
Source§

type IntoIter = IntoTriples<R>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<R> NamedGraphTraversableDataset for IndexedBTreeDataset<R>

Source§

type NamedGraphs<'a> = NamedGraphs<'a, R> where R: 'a

Source§

fn named_graphs(&self) -> Self::NamedGraphs<'_>

Source§

fn named_graph_count(&self) -> usize

Source§

impl<R> ObjectTraversableDataset for IndexedBTreeDataset<R>

Source§

type Objects<'a> = Objects<'a, R> where R: 'a

Source§

fn objects(&self) -> Self::Objects<'_>

Source§

fn object_count(&self) -> usize

Source§

impl<R: Ord> Ord for IndexedBTreeDataset<R>

Source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl<R: PartialEq> PartialEq for IndexedBTreeDataset<R>

Source§

fn eq(&self, other: &Self) -> 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<R: PartialOrd> PartialOrd for IndexedBTreeDataset<R>

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<R: Ord> PatternMatchingDataset for IndexedBTreeDataset<R>

Source§

type QuadPatternMatching<'a, 'p> = PatternMatching<'a, R> where R: 'a, Self::Resource: 'p

Pattern-matching iterator.
Source§

fn quad_pattern_matching<'p>( &self, pattern: CanonicalQuadPattern<&'p Self::Resource>, ) -> Self::QuadPatternMatching<'_, 'p>

Returns an iterator over all the quads of the dataset matching the given pattern.
Source§

fn contains_quad(&self, quad: Quad<&Self::Resource>) -> bool

Checks if the dataset contains the given quad.
Source§

fn contains_quad_subject(&self, subject: &Self::Resource) -> bool

Checks if the dataset contains the given subject.
Source§

fn contains_quad_predicate(&self, predicate: &Self::Resource) -> bool

Checks if the dataset contains the given predicate.
Source§

fn contains_quad_object(&self, object: &Self::Resource) -> bool

Checks if the dataset contains the given object.
Source§

fn contains_named_graph(&self, named_graph: &Self::Resource) -> bool

Checks if the dataset contains the given named graph.
Source§

fn quad_predicates_objects<'p>( &self, graph: Option<&'p Self::Resource>, subject: &'p Self::Resource, ) -> QuadPredicatesObjects<'_, 'p, Self>

Returns an iterator over all the predicates p matching any quad subject p o graph present in the dataset, for any object o.
Source§

fn quad_objects<'p>( &self, graph: Option<&'p Self::Resource>, subject: &'p Self::Resource, predicate: &'p Self::Resource, ) -> QuadObjects<'_, 'p, Self>

Returns an iterator over all the objects o matching the quad subject predicate o graph.
Source§

impl<R> PredicateTraversableDataset for IndexedBTreeDataset<R>

Source§

type Predicates<'a> = Predicates<'a, R> where R: 'a

Source§

fn predicates(&self) -> Self::Predicates<'_>

Source§

fn predicate_count(&self) -> usize

Source§

impl<R: RdfDisplay> RdfDisplay for IndexedBTreeDataset<R>

Source§

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

Formats the value using the given formatter.
Source§

fn rdf_display(&self) -> RdfDisplayed<&Self>

Prepare the value to be formatted as an RDF syntax element.
Source§

impl<R> ResourceTraversableDataset for IndexedBTreeDataset<R>

Source§

type Resources<'a> = Resources<'a, R> where R: 'a

Source§

fn resources(&self) -> Self::Resources<'_>

Source§

fn resource_count(&self) -> usize

Source§

impl<R> SubjectTraversableDataset for IndexedBTreeDataset<R>

Source§

type Subjects<'a> = Subjects<'a, R> where R: 'a

Source§

fn subjects(&self) -> Self::Subjects<'_>

Source§

fn subject_count(&self) -> usize

Source§

impl<R> TraversableDataset for IndexedBTreeDataset<R>

Source§

type Quads<'a> = Quads<'a, R> where R: 'a

Quads iterator.
Source§

fn quads(&self) -> Self::Quads<'_>

Returns an iterator over the quads of the dataset.
Source§

fn quads_count(&self) -> usize

Source§

impl<R: Eq> Eq for IndexedBTreeDataset<R>

Auto Trait Implementations§

§

impl<R> Freeze for IndexedBTreeDataset<R>

§

impl<R> RefUnwindSafe for IndexedBTreeDataset<R>
where R: RefUnwindSafe,

§

impl<R> Send for IndexedBTreeDataset<R>
where R: Send,

§

impl<R> Sync for IndexedBTreeDataset<R>
where R: Sync,

§

impl<R> Unpin for IndexedBTreeDataset<R>
where R: Unpin,

§

impl<R> UnwindSafe for IndexedBTreeDataset<R>
where R: UnwindSafe,

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<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

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

Source§

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

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

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

Source§

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

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

impl<D> FallibleDataset for D
where D: Dataset,

Source§

type Resource = <D as Dataset>::Resource

Resource type.
Source§

type Error = Infallible

Error type.
Source§

impl<D> FallibleDatasetMut for D
where D: DatasetMut,

Source§

fn try_insert( &mut self, quad: Quad<<D as FallibleDataset>::Resource>, ) -> Result<(), <D as FallibleDataset>::Error>

Source§

impl<D> FalliblePatternMatchingDataset for D

Source§

impl<D> FallibleTraversableDataset for D

Source§

type TryQuads<'a> = InfallibleIterator<<D as TraversableDataset>::Quads<'a>> where D: 'a

Fallible quads iterator.
Source§

fn try_quads(&self) -> <D as FallibleTraversableDataset>::TryQuads<'_>

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 = 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.