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
impl CompositeIndex
pub fn num_commits(&self) -> u32
pub fn stats(&self) -> IndexStats
pub fn entry_by_pos(&self, pos: IndexPosition) -> IndexEntry<'_>
pub fn entry_by_id(&self, commit_id: &CommitId) -> Option<IndexEntry<'_>>
pub fn commit_id_to_pos(&self, commit_id: &CommitId) -> Option<IndexPosition>
sourcepub fn heads_pos(
&self,
candidate_positions: BTreeSet<IndexPosition>,
) -> BTreeSet<IndexPosition>
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
impl AsCompositeIndex for CompositeIndex
source§fn as_composite(&self) -> &CompositeIndex
fn as_composite(&self) -> &CompositeIndex
Returns reference wrapper that provides global access to this index.
source§impl Index for &CompositeIndex
impl Index for &CompositeIndex
source§fn shortest_unique_commit_id_prefix_len(&self, commit_id: &CommitId) -> usize
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>
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
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
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>
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>
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>
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>
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.