pub struct RepoBytes {
pub pack: u64,
pub cache: u64,
pub lfs: u64,
}Expand description
One repository’s bytes, attributed per file. The one walk both
Admin.StorageInfo and Usage.Read are summed from (one implementation), so the two
cannot disagree about what a directory weighs.
The classification is by file name and is engine-neutral on purpose:
| file | meter |
|---|---|
<git_dir>/lfs/** | lfs |
…/objects.exploded* (znippy’s eager and lazy pools) | cache |
everything else — objects.pack + journal, objects.index (the persisted oid index, 2026-09-04), objects.tail, objects.graph, refs.log, OBJECT_FORMAT; gix’s objects/** and refs (objects.ordinal is gone as of 2026-09-04 — the index’s oid column is the ordinal space; a stale one is deleted at open) | pack |
pack is therefore “the hot tier minus the exploded cache” exactly as
usage.proto promises — it includes the derived index files, which are
re-derivable, because that is the contract monetize’s own client-side sum
reaches and two definitions of one bill is the thing to avoid. The file
list is written in usage.proto’s header; a new file the engine grows lands
in pack until somebody names it, which errs on the side of the operator
seeing it rather than not.
Fields§
§pack: u64The truth and its indexes: everything that is neither cache nor LFS.
cache: u64znippy’s exploded read cache, as it is on the disk right now.
lfs: u64LFS objects, committed and in flight.
Implementations§
Trait Implementations§
impl Copy for RepoBytes
impl Eq for RepoBytes
impl StructuralPartialEq for RepoBytes
Auto Trait Implementations§
impl Freeze for RepoBytes
impl RefUnwindSafe for RepoBytes
impl Send for RepoBytes
impl Sync for RepoBytes
impl Unpin for RepoBytes
impl UnsafeUnpin for RepoBytes
impl UnwindSafe for RepoBytes
Blanket Implementations§
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request