pub struct BuildIdentity {
pub source_tree: ContentHash,
pub cargo_lock: ContentHash,
pub rust_toolchain: ContentHash,
pub tf_config: ContentHash,
pub target: TargetTriple,
pub profile: Profile,
}Expand description
The complete set of inputs whose identity determines a build artifact.
This is the dedupe key behind AC#5 (identical source state ⇒ cache hit,
build skipped) and the provenance record behind AC#4 (never serve red:
the server only ever swaps to an artifact whose BuildIdentity it can name).
Each component is carried as its own type so the contract is explicit about
what makes a build distinct; folding these into the single InputHash
CAS key is the CAS owner’s job and is intentionally not specified here.
Two builds with an Eq BuildIdentity MUST be substitutable. If a real
input is not represented here, identical-key collisions become wrong-artifact
bugs — so additions to this struct are a deliberate contract change, not an
implementation detail.
Fields§
§source_tree: ContentHashHash over every tracked source file in the crate/workspace tree.
cargo_lock: ContentHashHash of Cargo.lock — pins the exact resolved dependency graph.
rust_toolchain: ContentHashHash of the resolved Rust toolchain (rust-toolchain.toml content /
pinned channel + version). A toolchain bump must invalidate the cache.
tf_config: ContentHashHash of the cargoless config file (tf.toml, decision D6). Config
changes the build, so it is part of the identity.
target: TargetTripleThe target triple (typically wasm32-unknown-unknown).
profile: ProfileThe cargo profile (always Profile::Dev for the v0 inner loop).
Trait Implementations§
Source§impl Clone for BuildIdentity
impl Clone for BuildIdentity
Source§fn clone(&self) -> BuildIdentity
fn clone(&self) -> BuildIdentity
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more