Struct nebari::Tree

source · []
pub struct Tree<Root: Root, File: ManagedFile> { /* private fields */ }
Expand description

A named collection of keys and values.

Implementations

Returns the name of the tree.

Returns the path to the file for this tree.

Returns the number of keys stored in the tree. Does not include deleted keys.

Sets key to value. This is executed within its own transaction.

Retrieves the current value of key, if present. Does not reflect any changes in pending transactions.

Retrieves the current index of key, if present. Does not reflect any changes in pending transactions.

Retrieves the current value and index of key, if present. Does not reflect any changes in pending transactions.

Sets key to value. Returns a tuple containing two elements:

  • The previously stored value, if a value was already present.
  • The new/updated index for this key.

Executes a modification. Returns a list of all changed keys.

Removes key and returns the existing value and index, if present. This is executed within its own transaction.

Compares the value of key against old. If the values match, key will be set to the new value if new is Some or removed if new is None. This is executed within its own transaction.

Retrieves the values of keys. If any keys are not found, they will be omitted from the results. Keys are required to be pre-sorted.

Retrieves the indexes of keys. If any keys are not found, they will be omitted from the results. Keys are required to be pre-sorted.

Retrieves the values and indexes of keys. If any keys are not found, they will be omitted from the results. Keys are required to be pre-sorted.

Retrieves all of the values of keys within range.

Retrieves all of the indexes of keys within range.

Retrieves all of the values and indexes of keys within range.

Scans the tree across all nodes that might contain nodes within range.

If forwards is true, the tree is scanned in ascending order. Otherwise, the tree is scanned in descending order.

node_evaluator is invoked for each Interior node to determine if the node should be traversed. The parameters to the callback are:

  • &ArcBytes<'static>: The maximum key stored within the all children nodes.
  • &Root::ReducedIndex: The reduced index value stored within the node.
  • usize: The depth of the node. The root nodes are depth 0.

The result of the callback is a ScanEvaluation. To read children nodes, return ScanEvaluation::ReadData.

key_evaluator is invoked for each key encountered that is contained within range. For all ScanEvaluation::ReadData results returned, callback will be invoked with the key and values. callback may not be invoked in the same order as the keys are scanned.

Returns the reduced index over the provided range. This is an aggregation function that builds atop the scan() operation which calls Reducer::reduce() and Reducer::rereduce() on all matching indexes stored within the nodes of this tree, producing a single aggregated Root::ReducedIndex value.

If no keys match, the returned result is what Reducer::rereduce() returns when an empty slice is provided.

Returns the first key of the tree.

Returns the first key and value of the tree.

Returns the last key of the tree.

Returns the last key and value of the tree.

Rewrites the database to remove data that is no longer current. Because Nebari uses an append-only format, this is helpful in reducing disk usage.

See TreeFile::compact() for more information.

Returns the latest sequence id.

Scans the tree for keys that are contained within range. If forwards is true, scanning starts at the lowest sort-order key and scans forward. Otherwise, scanning starts at the highest sort-order key and scans backwards. key_evaluator is invoked for each key as it is encountered. For all ScanEvaluation::ReadData results returned, callback will be invoked with the key and values. The callback may not be invoked in the same order as the keys are scanned.

Retrieves the keys and values associated with one or more sequences. The value retrieved is the value of the key at the given SequenceId. If a sequence is not found, it will not appear in the result map. If the value was removed, None is returned for the value.

Retrieves the keys and indexes associated with one or more sequences. The value retrieved is the value of the key at the given SequenceId. If a sequence is not found, it will not appear in the result list.

Retrieves the keys, values, and indexes associated with one or more sequences. The value retrieved is the value of the key at the given SequenceId. If a sequence is not found, it will not appear in the result list.

Trait Implementations

The name of the tree.

The default state for the underlying root type.

Begins a transaction on this tree.

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

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

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more