pub struct ArtifactIr {Show 17 fields
pub schema_version: String,
pub format: ArtifactFormat,
pub capabilities: ArtifactCapabilities,
pub fingerprint: ArtifactFingerprint,
pub observed_bytes: u64,
pub architecture: Option<String>,
pub skipped_architectures: Vec<String>,
pub sections: Vec<ArtifactSection>,
pub archive_members: Vec<ArtifactArchiveMember>,
pub imports: Vec<ArtifactImport>,
pub symbols: Vec<ArtifactSymbol>,
pub entry_points: Vec<ArtifactFingerprint>,
pub indirect_references: Vec<ArtifactFingerprint>,
pub calls: Vec<ArtifactCall>,
pub relocations: Vec<ArtifactRelocation>,
pub source_mappings: Vec<ArtifactSourceMapping>,
pub data_segments: Vec<ArtifactDataSegment>,
}Expand description
One parsed artifact, independent of the container that supplied it.
Fields§
§schema_version: StringVersion of this document’s shape.
format: ArtifactFormatContainer format that supplied this IR.
capabilities: ArtifactCapabilitiesFacts that the parser could establish for this individual input.
fingerprint: ArtifactFingerprintStable identity of the complete byte input.
observed_bytes: u64Input length measured directly from the byte stream.
architecture: Option<String>Architecture selected from the parsed input, when the format exposes one.
A universal Mach-O records its explicitly selected slice here. Ordinary single-architecture inputs also retain their parser-observed architecture.
skipped_architectures: Vec<String>Architectures deliberately not parsed from a universal container.
This is display evidence, not a stable identity or a claim that the skipped slices are semantically equivalent to the selected one.
sections: Vec<ArtifactSection>Parsed sections, when the format exposes them.
archive_members: Vec<ArtifactArchiveMember>Object members when this artifact is an archive.
Ordinary containers leave this empty. Archive members retain their own content identity and parser outcome even though their parsed facts are also flattened into this IR for the format-neutral metrics layer.
imports: Vec<ArtifactImport>Declared imports, when the format exposes them.
symbols: Vec<ArtifactSymbol>Parsed functions or symbols.
entry_points: Vec<ArtifactFingerprint>Parser-established entry points in the local symbol identity space.
indirect_references: Vec<ArtifactFingerprint>Functions retained by an indirect-dispatch table or equivalent parser evidence. These are roots for conservative reachability, not IDs.
calls: Vec<ArtifactCall>Direct and unresolved call relations.
relocations: Vec<ArtifactRelocation>Relocation anchors, when a format preserves them.
source_mappings: Vec<ArtifactSourceMapping>Source-map references the artifact itself declares.
data_segments: Vec<ArtifactDataSegment>Independent data regions that can participate in duplicate detection.
Implementations§
Source§impl ArtifactIr
impl ArtifactIr
Sourcepub fn empty(format: ArtifactFormat, bytes: &[u8]) -> Self
pub fn empty(format: ArtifactFormat, bytes: &[u8]) -> Self
Start an IR for bytes; backends add only facts they actually parsed.
Trait Implementations§
Source§impl Clone for ArtifactIr
impl Clone for ArtifactIr
Source§fn clone(&self) -> ArtifactIr
fn clone(&self) -> ArtifactIr
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 ArtifactIr
impl Debug for ArtifactIr
Source§impl<'de> Deserialize<'de> for ArtifactIr
impl<'de> Deserialize<'de> for ArtifactIr
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 ArtifactIr
Source§impl PartialEq for ArtifactIr
impl PartialEq for ArtifactIr
Source§impl Serialize for ArtifactIr
impl Serialize for ArtifactIr
impl StructuralPartialEq for ArtifactIr
Auto Trait Implementations§
impl Freeze for ArtifactIr
impl RefUnwindSafe for ArtifactIr
impl Send for ArtifactIr
impl Sync for ArtifactIr
impl Unpin for ArtifactIr
impl UnsafeUnpin for ArtifactIr
impl UnwindSafe for ArtifactIr
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.