1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//! mbx: a build cache for Rust projects.
//!
//! Compilations are cached as individual rustc actions in a content-addressed
//! store shared by every project and worktree on a machine, and optionally
//! shared further through a remote cache.
//!
//! This library target exists so the executable and integration tests can
//! share application code; it is not an embedding API. The supported
//! interfaces are the `mbx` command line -- its subcommands and its versioned
//! JSON output -- and, for anything speaking to a remote cache,
//! `mbx-cache-protocol`. `mbx-cache-core` and `mbx-cache-rustc` are internals
//! too, and say so in their own descriptions.
//!
//! Nothing here carries a compatibility guarantee, and CI's public-API check
//! skips this package for that reason -- see `UNCHECKED_PACKAGES` in
//! `.github/workflows/ci.yml`. Types the CLI alone reads may gain fields in a
//! patch release. Do not restore the check to "protect" these items: it would
//! only force a major bump every time the CLI gains a setting.
//!
//! The modules below are `#[doc(hidden)]` for the same reason. They have to
//! stay `pub` for the binary and the integration tests, but a published crate
//! whose documentation advertises `store` and `session` invites exactly the
//! dependency the paragraph above rules out.
pub
pub
pub