pub trait Repo {
// Required methods
fn base_repo(&self) -> &Arc<ReadonlyRepo>;
fn store(&self) -> &Arc<Store>;
fn op_store(&self) -> &Arc<dyn OpStore>;
fn index(&self) -> &dyn Index;
fn view(&self) -> &View;
fn resolve_change_id_prefix(
&self,
prefix: &HexPrefix
) -> PrefixResolution<Vec<IndexEntry<'_>>>;
fn shortest_unique_change_id_prefix_len(
&self,
target_id_bytes: &ChangeId
) -> usize;
// Provided method
fn resolve_change_id(
&self,
change_id: &ChangeId
) -> Option<Vec<IndexEntry<'_>>> { ... }
}