pub struct ArtifactIndexRow {Show 13 fields
pub crate_name: CrateName,
pub version: CrateVersion,
pub features_json: FeaturesJson,
pub dependency_c_metadata_json: DependencyCMetadataJson,
pub c_metadata: CMetadata,
pub compile_key: String,
pub bundle_digest: String,
pub bundle_size: u64,
pub artifact_kind: ArtifactKind,
pub crate_types: Vec<RustCrateType>,
pub profile: Profile,
pub emit: Vec<String>,
pub min_glibc: Option<GlibcVersion>,
}Expand description
One servable artifact row of the slice — everything a client needs to
resolve (crate, version, features, dependency identities) to a
bundle_digest it can fetch.
Fields§
§crate_name: CrateNameCrate name as published on crates.io.
version: CrateVersionExact crate version.
features_json: FeaturesJsonCanonicalized features list (sorted, deduplicated).
dependency_c_metadata_json: DependencyCMetadataJsonSorted (crate_name, c_metadata) identities of the dependencies
this artifact was built against — the transitive-closure chain.
c_metadata: CMetadataCargo’s -C metadata value — the exact cache lookup key.
compile_key: StringBlake3 compile key of this artifact. A row is canonical — the
identity semantic matching and closure walks may use — only when
crate::public_cache::stable_c_metadata_for_compile_key maps it
back to c_metadata; non-canonical rows remain servable by exact
c_metadata lookup but must not participate in graph analysis.
bundle_digest: StringDigest (sha256:…) of the <tag>.bundle blob the edge streams.
Always non-empty: unbundled rows are not servable and never enter
the index.
bundle_size: u64Byte length of that blob.
artifact_kind: ArtifactKindPrimary artifact kind (rlib / dylib / proc-macro).
crate_types: Vec<RustCrateType>Declared Rust crate types.
profile: ProfileCompilation profile observed from the captured rustc invocation.
emit: Vec<String>Sorted, deduplicated --emit modes observed from the invocation.
min_glibc: Option<GlibcVersion>Lowest glibc the artifact’s ELF members can dlopen against — the
highest GLIBC_x.y in their version-needed entries, measured at
publish. None for non-ELF payloads and for artifacts with no glibc
dependency. A client on a glibc below this must not serve the row;
it compiles the unit locally instead. On musl and non-Linux hosts
the field is not applicable.
Trait Implementations§
Source§impl Clone for ArtifactIndexRow
impl Clone for ArtifactIndexRow
Source§impl ComposeSchema for ArtifactIndexRow
impl ComposeSchema for ArtifactIndexRow
Source§impl Debug for ArtifactIndexRow
impl Debug for ArtifactIndexRow
Source§impl<'de> Deserialize<'de> for ArtifactIndexRow
impl<'de> Deserialize<'de> for ArtifactIndexRow
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 ArtifactIndexRow
Source§impl PartialEq for ArtifactIndexRow
impl PartialEq for ArtifactIndexRow
Source§impl Serialize for ArtifactIndexRow
impl Serialize for ArtifactIndexRow
impl StructuralPartialEq for ArtifactIndexRow
Auto Trait Implementations§
impl Freeze for ArtifactIndexRow
impl RefUnwindSafe for ArtifactIndexRow
impl Send for ArtifactIndexRow
impl Sync for ArtifactIndexRow
impl Unpin for ArtifactIndexRow
impl UnsafeUnpin for ArtifactIndexRow
impl UnwindSafe for ArtifactIndexRow
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.