git_policy_cli/index/mod.rs
1//! What:
2//! In-process reading and writing of the Git index file and its extensions.
3//! Why:
4//! The index format is one specification with many parts.
5//!
6//! In TS you'd write (pseudocode):
7//! ```ts
8//! // index/index.ts: one `export * from './file'` per module below.
9//! ```
10
11/// A read of the assume-unchanged and skip-worktree marks of an index file.
12pub mod index_flags;
13
14/// In-process index update: Git's EWAH bitmap, for the untracked-cache and fsmonitor extensions.
15pub mod index_ewah;
16
17/// In-process index update: the cache-tree extension.
18pub mod index_cache_tree;
19
20/// In-process index update: the resolve-undo extension.
21pub mod index_resolve_undo;
22
23/// In-process index update: stat fields and Git's varint.
24pub mod index_stat;
25
26/// In-process index update: the untracked-cache extension as directories, and its invalidation.
27pub mod index_untracked;
28
29/// In-process index update: reading and writing the untracked-cache extension.
30pub mod index_untracked_io;
31
32/// In-process index update: the fsmonitor extension.
33pub mod index_fsmonitor;
34
35/// In-process index update: a whole index file read into entries and kept extensions.
36pub mod index_full;
37
38/// In-process index update: a whole index file written as Git writes it.
39pub mod index_full_write;
40
41/// In-process index update: the configuration that decides the extensions and the decline cases.
42#[cfg(unix)]
43pub mod index_settings;
44
45/// In-process index update: a path-limited mixed reset of an index held in memory.
46#[cfg(unix)]
47pub mod index_reset;
48
49/// In-process index update: the trees a path-limited reset reads.
50#[cfg(unix)]
51pub mod index_reset_tree;
52
53/// In-process index update: the lock proof, the temporary file and the file mode of the landing's private index.
54#[cfg(target_os = "linux")]
55pub mod index_reset_publish;
56
57/// In-process index update: the landing's follow-up on an index file.
58#[cfg(target_os = "linux")]
59pub mod index_reset_file;
60
61/// Index files real Git wrote, for the controls of the readers and writers; never part of the release executable.
62#[cfg(test)]
63#[cfg(target_os = "linux")]
64pub(crate) mod index_reset_support_probe;