superseded by git_odb::Store
Expand description
A database with a list of compound databases created by traversing git alternates
files.
It does not contain any objects itself.
Furthermore, it won’t handle multi-pack indices and might be removed at some point in the future to allow focussing on a single database.
Fields
dbs: Vec<Store>
superseded by git_odb::Store
The compound databases containing the actual objects.
Implementations
sourceimpl Store
impl Store
sourceimpl Store
impl Store
sourcepub fn to_cache(&self) -> Cache<&Self>
pub fn to_cache(&self) -> Cache<&Self>
Create a store handle with a shared reference to this instance.
sourcepub fn to_cache_arc(self: &Arc<Self>) -> Cache<Arc<Self>>
pub fn to_cache_arc(self: &Arc<Self>) -> Cache<Arc<Self>>
Create a store handle with a shared reference to this instance, if this instance is kept in an Arc.
Create a store handle with a shared reference to this instance, if this instance is kept in an Rc/Arc.
The latter depends on the git-features/parallel
feature toggle.
sourceimpl Store
impl Store
sourcepub fn iter(&self) -> AllObjects<&Store>
pub fn iter(&self) -> AllObjects<&Store>
Return an iterator over all objects in all linked databases, database after database, first packed
objects with the ‘best’ packs first, followed by loose objects.
For specialized iterations, use the dbs
fields directly as all databases are accessible.
Trait Implementations
sourceimpl Find for Store
impl Find for Store
sourcefn contains(&self, id: impl AsRef<oid>) -> bool
fn contains(&self, id: impl AsRef<oid>) -> bool
Return true if the given object id
is contained in the store.
type Error = Error
type Error = Error
The error returned by try_find()
sourcefn try_find_cached<'a>(
&self,
id: impl AsRef<oid>,
buffer: &'a mut Vec<u8>,
pack_cache: &mut impl DecodeEntry
) -> Result<Option<(Data<'a>, Option<Location>)>, Self::Error>
fn try_find_cached<'a>(
&self,
id: impl AsRef<oid>,
buffer: &'a mut Vec<u8>,
pack_cache: &mut impl DecodeEntry
) -> Result<Option<(Data<'a>, Option<Location>)>, Self::Error>
Like Find::try_find()
, but with support for controlling the pack cache.
A pack_cache
can be used to speed up subsequent lookups, set it to crate::cache::Never
if the
workload isn’t suitable for caching. Read more
sourcefn location_by_oid(
&self,
id: impl AsRef<oid>,
buf: &mut Vec<u8>
) -> Option<Location>
fn location_by_oid(
&self,
id: impl AsRef<oid>,
buf: &mut Vec<u8>
) -> Option<Location>
Find the packs location where an object with id
can be found in the database, or None
if there is no pack
holding the object. Read more
sourcefn pack_offsets_and_oid(&self, pack_id: u32) -> Option<Vec<(u64, ObjectId)>>
fn pack_offsets_and_oid(&self, pack_id: u32) -> Option<Vec<(u64, ObjectId)>>
Obtain a vector of all offsets, in index order, along with their object id.
sourcefn entry_by_location(&self, location: &Location) -> Option<Entry>
fn entry_by_location(&self, location: &Location) -> Option<Entry>
Return the find::Entry
for location
if it is backed by a pack. Read more
sourcefn try_find(
&self,
id: impl AsRef<oid>,
buffer: &'a mut Vec<u8, Global>
) -> Result<Option<(Data<'a>, Option<Location>)>, Self::Error>
fn try_find(
&self,
id: impl AsRef<oid>,
buffer: &'a mut Vec<u8, Global>
) -> Result<Option<(Data<'a>, Option<Location>)>, Self::Error>
Find an object matching id
in the database while placing its raw, undecoded data into buffer
.
A pack_cache
can be used to speed up subsequent lookups, set it to crate::cache::Never
if the
workload isn’t suitable for caching. Read more
sourceimpl Find for Store
impl Find for Store
Auto Trait Implementations
impl RefUnwindSafe for Store
impl Send for Store
impl Sync for Store
impl Unpin for Store
impl UnwindSafe for Store
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> FindExt for T where
T: Find,
impl<T> FindExt for T where
T: Find,
sourcefn find(
&self,
id: impl AsRef<oid>,
buffer: &'a mut Vec<u8, Global>
) -> Result<(Data<'a>, Option<Location>), Error<Self::Error>>
fn find(
&self,
id: impl AsRef<oid>,
buffer: &'a mut Vec<u8, Global>
) -> Result<(Data<'a>, Option<Location>), Error<Self::Error>>
Like try_find(…)
, but flattens the Result<Option<_>>
into a single Result
making a non-existing object an error.