CodeId

Enum CodeId 

Source
pub enum CodeId {
    PeCodeId(PeCodeId),
    MachoUuid(Uuid),
    ElfBuildId(ElfBuildId),
}
Expand description

An enum carrying an identifier for a binary. This is stores the same information as a debugid::CodeId, but without projecting it down to a string.

All types need to be treated rather differently, see their respective documentation.

Variants§

§

PeCodeId(PeCodeId)

The code ID for a Windows PE file. When combined with the binary name, the code ID lets you obtain binaries from symbol servers. It is not useful on its own, it has to be paired with the binary name.

On Windows, a binary’s code ID is distinct from its debug ID (= pdb GUID + age). If you have a binary file, you can get both the code ID and the debug ID from it. If you only have a PDB file, you usually cannot get the code ID of the corresponding binary from it.

§

MachoUuid(Uuid)

The code ID for a macOS / iOS binary (mach-O). This is just the mach-O UUID. The mach-O UUID is shared between both the binary file and the debug file (dSYM), and it can be used on its own to find dSYMs using Spotlight.

The debug ID and the code ID contain the same information; the debug ID is literally just the UUID plus a zero at the end.

§

ElfBuildId(ElfBuildId)

The code ID for a Linux ELF file. This is the “ELF build ID” (also called “GNU build ID”). The build ID is usually 20 bytes, commonly written out as 40 hex chars.

It can be used to find debug files on the local file system or to download binaries or debug files from a debuginfod symbol server. it does not have to be paired with the binary name.

An ELF binary’s code ID is more useful than its debug ID: The debug ID is truncated to 16 bytes (32 hex characters), whereas the code ID is the full ELF build ID.

Trait Implementations§

Source§

impl Clone for CodeId

Source§

fn clone(&self) -> CodeId

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CodeId

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for CodeId

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FromStr for CodeId

Source§

type Err = ()

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for CodeId

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for CodeId

Source§

fn cmp(&self, other: &CodeId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for CodeId

Source§

fn eq(&self, other: &CodeId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for CodeId

Source§

fn partial_cmp(&self, other: &CodeId) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Eq for CodeId

Source§

impl StructuralPartialEq for CodeId

Auto Trait Implementations§

§

impl Freeze for CodeId

§

impl RefUnwindSafe for CodeId

§

impl Send for CodeId

§

impl Sync for CodeId

§

impl Unpin for CodeId

§

impl UnwindSafe for CodeId

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> ErasedDestructor for T
where T: 'static,