pub struct DeriveLock {
pub input_hash: String,
pub output_blake3: String,
}Expand description
W212/R518: the committed derivation lock — the in-tree action-cache
receipt. input_hash is the input-addressed derivation key computed over
the complete declared input set (fetched-input pin ⊕ recipe-file bytes ⊕
invocation params ⊕ schema version); output_blake3 is what those inputs
produced (== the entry’s blake3). The reconciler skips the entire build
(no fetch, no transform, no PUT) when the lock matches the inputs recomputed
from the current pins and the bucket already holds the output — the
Nix-substituter / Bazel-remote-cache behaviour. Written by the R510 bind
path from the reconciler’s discovered_input_hash:<filename> output; the
git diff on this block is the receipt that the derivation rolled.
Fields§
§input_hash: StringInput-addressed derivation key (BLAKE3 hex). A change to any declared input flips this, so a stale lock never produces a false skip.
output_blake3: StringOutput the locked inputs produced (BLAKE3 hex; equals the entry’s
blake3). Carried so the lock is a self-contained action-cache entry.
Trait Implementations§
Source§impl Clone for DeriveLock
impl Clone for DeriveLock
Source§fn clone(&self) -> DeriveLock
fn clone(&self) -> DeriveLock
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DeriveLock
impl Debug for DeriveLock
Source§impl<'de> Deserialize<'de> for DeriveLock
impl<'de> Deserialize<'de> for DeriveLock
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for DeriveLock
Source§impl PartialEq for DeriveLock
impl PartialEq for DeriveLock
Source§fn eq(&self, other: &DeriveLock) -> bool
fn eq(&self, other: &DeriveLock) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for DeriveLock
impl Serialize for DeriveLock
impl StructuralPartialEq for DeriveLock
Source§impl TS for DeriveLock
impl TS for DeriveLock
Source§type WithoutGenerics = DeriveLock
type WithoutGenerics = DeriveLock
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or (). The only requirement for these dummy types is that
EXPORT_TO must be None. Read moreSource§type OptionInnerType = DeriveLock
type OptionInnerType = DeriveLock
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn decl_concrete(cfg: &Config) -> String
fn decl_concrete(cfg: &Config) -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl(cfg: &Config) -> String
fn decl(cfg: &Config) -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline(cfg: &Config) -> String
fn inline(cfg: &Config) -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened(cfg: &Config) -> String
fn inline_flattened(cfg: &Config) -> String
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported, relative to the output directory.
The returned path does not include any base directory. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
Source§fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export_all. Read moreSource§fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export. Read moreSource§fn export_to_string(cfg: &Config) -> Result<String, ExportError>where
Self: 'static,
fn export_to_string(cfg: &Config) -> Result<String, ExportError>where
Self: 'static,
Auto Trait Implementations§
impl Freeze for DeriveLock
impl RefUnwindSafe for DeriveLock
impl Send for DeriveLock
impl Sync for DeriveLock
impl Unpin for DeriveLock
impl UnsafeUnpin for DeriveLock
impl UnwindSafe for DeriveLock
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.