Struct jj_lib::default_index::CompositeIndex

source ·
pub struct CompositeIndex(/* private fields */);
Expand description

CompositeIndex provides an index of both commit IDs and change IDs.

We refer to this as a composite index because it’s a composite of multiple nested index segments where each parent segment is roughly twice as large its child. segment. This provides a good balance between read and write performance.

Implementations§

source§

impl CompositeIndex

source

pub fn num_commits(&self) -> u32

source

pub fn stats(&self) -> IndexStats

source

pub fn entry_by_pos(&self, pos: IndexPosition) -> IndexEntry<'_>

source

pub fn entry_by_id(&self, commit_id: &CommitId) -> Option<IndexEntry<'_>>

source

pub fn commit_id_to_pos(&self, commit_id: &CommitId) -> Option<IndexPosition>

source

pub fn heads_pos( &self, candidate_positions: BTreeSet<IndexPosition>, ) -> BTreeSet<IndexPosition>

Returns the subset of positions in candidate_positions which refer to entries that are heads in the repository.

Trait Implementations§

source§

impl AsCompositeIndex for CompositeIndex

source§

fn as_composite(&self) -> &CompositeIndex

Returns reference wrapper that provides global access to this index.
source§

impl Index for &CompositeIndex

source§

fn shortest_unique_commit_id_prefix_len(&self, commit_id: &CommitId) -> usize

Suppose the given commit_id exists, returns the minimum prefix length to disambiguate it. The length to be returned is a number of hexadecimal digits.

If the given commit_id doesn’t exist, this will return the prefix length that never matches with any commit ids.

source§

fn resolve_commit_id_prefix( &self, prefix: &HexPrefix, ) -> PrefixResolution<CommitId>

Searches the index for commit IDs matching prefix. Returns a PrefixResolution with a CommitId if the prefix matches a single commit.
source§

fn has_id(&self, commit_id: &CommitId) -> bool

Returns true if commit_id is present in the index.
source§

fn is_ancestor(&self, ancestor_id: &CommitId, descendant_id: &CommitId) -> bool

Returns true if ancestor_id commit is an ancestor of the descendant_id commit, or if ancestor_id equals descendant_id.
source§

fn common_ancestors( &self, set1: &[CommitId], set2: &[CommitId], ) -> Vec<CommitId>

Returns the best common ancestor or ancestors of the commits in set1 and set2. A “best common ancestor” has no descendants that are also common ancestors.
source§

fn all_heads_for_gc( &self, ) -> Result<Box<dyn Iterator<Item = CommitId> + '_>, AllHeadsForGcUnsupported>

Heads among all indexed commits at the associated operation. Read more
source§

fn heads( &self, candidate_ids: &mut dyn Iterator<Item = &CommitId>, ) -> Vec<CommitId>

Returns the subset of commit IDs in candidates which are not ancestors of other commits in candidates. If a commit id is duplicated in the candidates list it will appear at most once in the output.
source§

fn evaluate_revset<'index>( &'index self, expression: &ResolvedExpression, store: &Arc<Store>, ) -> Result<Box<dyn Revset + 'index>, RevsetEvaluationError>

Resolves the revset expression against the index and corresponding store.

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