Struct dynasmrt::components::StaticLabel

source ·
pub struct StaticLabel { /* private fields */ }
Expand description

A static label represents either a local label or a global label reference.

Global labels are unique names, which can be referenced multiple times, but only defined once (per-crate::Assembler).

Local labels are non-unique names. They can be referenced multiple times, and any reference indicates if they refer to a label after the reference, or a label before the reference.

A static label records how many local labels with the same name have been emitted beforehand so we can treat them as local labels as well.

Implementations§

source§

impl StaticLabel

source

pub fn global(name: &'static str) -> StaticLabel

Create a new static label for a global label

source

pub fn local(name: &'static str, version: usize) -> StaticLabel

Create a new static label for a local label, with the given version id to distinguish it.

source

pub fn is_global(&self) -> bool

Returns if this static label represents a global label

source

pub fn is_local(&self) -> bool

Returns if this static label represents a local label

source

pub fn next(self) -> StaticLabel

Returns the static label targetting the label with the same name, after this one. if it is a global label, returns a copy of itself.

source

pub fn first(name: &'static str) -> StaticLabel

Returns the representation of the first local label used with the given name.

source

pub fn get_name(&self) -> &'static str

Returns the name of this static label

Trait Implementations§

source§

impl Clone for StaticLabel

source§

fn clone(&self) -> StaticLabel

Returns a copy 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 StaticLabel

source§

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

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

impl Hash for StaticLabel

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 PartialEq for StaticLabel

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for StaticLabel

source§

impl Eq for StaticLabel

source§

impl StructuralPartialEq for StaticLabel

Auto Trait Implementations§

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§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

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

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

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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,

§

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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.