#[non_exhaustive]pub struct Counts {Show 57 fields
pub dir_opens: u64,
pub dir_enumeration_calls: u64,
pub dir_entries: u64,
pub stats: u64,
pub file_opens: u64,
pub file_reads: u64,
pub bytes_read: u64,
pub allocs: u64,
pub reallocs: u64,
pub frees: u64,
pub bytes_allocated: u64,
pub upserts: u64,
pub parent_resolutions: u64,
pub parent_memo_hits: u64,
pub rollup_merges: u64,
pub control_reads: u64,
pub control_refused: u64,
pub control_sources_shared: u64,
pub ignore_patterns_tested: u64,
pub ignore_bucket_probes: u64,
pub ignore_bucket_hits: u64,
pub entries_allocated: u64,
pub baseline_batches: u64,
pub baseline_accepted_ops: u64,
pub opened_batches: u64,
pub opened_accepted_ops: u64,
pub public_batches: u64,
pub public_accepted_ops: u64,
pub ancestry_overlay_inserts: u64,
pub ancestry_path_comparisons: u64,
pub ancestry_parent_proofs: u64,
pub scanner_prepare_us: u64,
pub scanner_control_projection_us: u64,
pub scanner_reduce_us: u64,
pub content_sidecar_read_us: u64,
pub content_sidecar_parse_us: u64,
pub content_sidecar_candidates_us: u64,
pub content_sidecar_apply_us: u64,
pub detached_builds: u64,
pub detached_entries: u64,
pub detached_walk_us: u64,
pub detached_finish_us: u64,
pub effect_paths: u64,
pub effect_path_bytes: u64,
pub impact_candidates: u64,
pub impact_ancestor_visits: u64,
pub impact_retained_dirty_paths: u64,
pub impact_all_dirty: u64,
pub journal_retained_commits: u64,
pub journal_cloned_commits: u64,
pub journal_oversized_commits: u64,
pub journal_dropped_commits: u64,
pub adaptive_calibration_chunks: u64,
pub adaptive_calibration_entries: u64,
pub adaptive_calibration_work_us: u64,
pub adaptive_scale_ups: u64,
pub adaptive_policy_undecided: u64,
}Expand description
Per-layer tallies for a walk, index build, and content pass.
Non-exhaustive, so a later counter is an additive change: outside this crate, build
one with Counts::default and read or assign its fields, rather than with a struct
literal or an exhaustive destructure (fdu-8f6k).
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.dir_opens: u64Logical directory-open operations.
dir_enumeration_calls: u64Enumeration syscalls in complete successful native listings — macOS bulk and
Linux getdents64 — including the empty terminator.
One successful directory is typically two calls (one data, one EOF). The portable
read_dir path leaves this at 0 because the standard library hides that split.
Abandoned native attempts before portable fallback are not counted, so this can be
compared to dir_opens without another sample.
dir_entries: u64Directory entries yielded by enumeration.
stats: u64Logical metadata-stat operations.
The Linux native reader also counts the stat it makes for a DT_UNKNOWN directory
or symlink on the summary route; the portable path’s file_type fallback makes
the same stat uncounted.
file_opens: u64File-open operations performed by content analysis.
file_reads: u64File read calls performed by content analysis.
bytes_read: u64Bytes read from files by content analysis.
allocs: u64Allocation requests observed by the installed counting allocator.
reallocs: u64Reallocation requests observed by the installed counting allocator.
frees: u64Deallocations observed by the installed counting allocator.
bytes_allocated: u64Bytes requested by allocations and allocation growth.
upserts: u64Index upserts applied.
parent_resolutions: u64Parent-path resolutions performed for index updates.
parent_memo_hits: u64Parent resolutions served by the adjacent-parent memo.
rollup_merges: u64Roll-up merge operations.
control_reads: u64Control files read from the filesystem.
control_refused: u64Control sources a control table refused for one of its limits.
Counted where the table decides, so a re-read of a file it has already refused is not: that batch cannot change the table and is never projected. A warm revalidate of a refused tree therefore reports its reads against no refusals, which is the projection being skipped rather than a refusal being lifted.
Control sources that joined a retained identical content instead of parsing again.
ignore_patterns_tested: u64.gitignore rules whose glob was tested against an entry: the rules an entry met
that no lookup or cheap check on its name could decide (H171).
ignore_bucket_probes: u64Lookups of an entry’s name in a .gitignore file’s indexed rules: one per
literal-name table and extension table consulted, and one per ends-with rule
without a . compared.
ignore_bucket_hits: u64Those lookups that found a rule matching the entry.
entries_allocated: u64Index entries allocated.
baseline_batches: u64Successful detached baseline batches arbitrated by the index.
baseline_accepted_ops: u64Operations accepted from successful detached baseline batches.
opened_batches: u64Successful opened-root batches arbitrated by the index.
opened_accepted_ops: u64Operations accepted from successful opened-root batches.
public_batches: u64Successful arbitrary public batches arbitrated by the index.
public_accepted_ops: u64Operations accepted from successful arbitrary public batches.
ancestry_overlay_inserts: u64Path-keyed structural-overlay inserts during ancestry preflight.
ancestry_path_comparisons: u64Same-parent path comparisons during ancestry preflight.
ancestry_parent_proofs: u64Parent chains proved during ancestry preflight, including memo hits.
scanner_prepare_us: u64Wall microseconds spent preparing trusted scanner batches.
scanner_control_projection_us: u64Wall microseconds spent projecting controls for trusted scanner batches.
scanner_reduce_us: u64Wall microseconds spent reducing prepared scanner batches into the index.
content_sidecar_read_us: u64Wall microseconds spent reading the content sidecar image.
content_sidecar_parse_us: u64Wall microseconds spent on sidecar integrity and record decode.
content_sidecar_candidates_us: u64Wall microseconds spent building the live candidate map for a sidecar restore.
content_sidecar_apply_us: u64Wall microseconds spent applying restored records and rebuilding content roll-ups.
detached_builds: u64Detached cold scans that selected the directory-group builder.
detached_entries: u64Entries consumed by that builder.
detached_walk_us: u64Wall microseconds spent walking while the builder consumed directory groups.
detached_finish_us: u64Wall microseconds spent in the final directories-only roll-up pass.
effect_paths: u64Owned paths retained in exact effective changes.
effect_path_bytes: u64Native encoded bytes retained by exact effective-change paths.
impact_candidates: u64Change and state paths considered for bounded impact derivation.
impact_ancestor_visits: u64Path ancestors visited while deriving bounded impact.
impact_retained_dirty_paths: u64Dirty paths retained in completed bounded impacts.
impact_all_dirty: u64Impact derivations that crossed the dirty-path bound.
journal_retained_commits: u64Exact commits retained in the bounded journal.
journal_cloned_commits: u64Exact commits cloned for attempted journal retention.
journal_oversized_commits: u64Exact commits rejected because one commit exceeded journal capacity.
journal_dropped_commits: u64Older exact commits dropped to admit a new retained commit.
adaptive_calibration_chunks: u64Chunk releases folded into an automatic scan’s worker-scaling calibration.
adaptive_calibration_entries: u64Entries folded into that calibration before it reached a decision.
adaptive_calibration_work_us: u64Worker time, in microseconds, folded into that calibration.
Microseconds rather than nanoseconds because the decision threshold is expressed per entry in microseconds, and a nanosecond total over a multi-million-entry walk is large enough to make the row hard to read.
adaptive_scale_ups: u64Reserve-pool expansions an automatic scan actually performed.
adaptive_policy_undecided: u64Walks that ended while their scaling calibration was still undecided.
A walk shorter than the calibration window never observes enough entries to
decide, so its worker policy is unobservable rather than merely unchanged. That
is the distinction crate::scan fails closed on, and it must not read as a
decision to hold.