CodeSignature

Struct CodeSignature 

Source
pub struct CodeSignature(/* private fields */);
Expand description

Program Code Signature

The first 16 bytes of a VEX user program contains a code signature header, which has some basic metadata and startup flags for the program. This signature must be at the start of the binary for VExos to recognize our binary as a program.

A static instance of this type can be passed to the code_sig argument of the #[vexide::main] macro to override the default code signature, or may be placed into the .code_signature linker section if not using the macro.

Implementations§

Source§

impl CodeSignature

Source

pub const fn new( program_type: ProgramType, owner: ProgramOwner, options: ProgramOptions, ) -> Self

Creates a new signature given a program type, owner, and flags.

Source

pub const fn owner(&self) -> ProgramOwner

Returns the program owner specified by this signature.

See ProgramOwner for more info.

Source

pub const fn program_type(&self) -> ProgramType

Returns the program type specified by this signature.

See ProgramType for more info.

Source

pub const fn options(&self) -> ProgramOptions

Returns the program startup options specified by this signature.

See ProgramOptions for more info.

Trait Implementations§

Source§

impl Clone for CodeSignature

Source§

fn clone(&self) -> CodeSignature

Returns a duplicate of the value. Read more
1.0.0§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for CodeSignature

Source§

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

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

impl PartialEq for CodeSignature

Source§

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

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

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 Copy for CodeSignature

Source§

impl Eq for CodeSignature

Source§

impl StructuralPartialEq for CodeSignature

Auto Trait Implementations§

§

impl Freeze for CodeSignature

§

impl RefUnwindSafe for CodeSignature

§

impl Send for CodeSignature

§

impl Sync for CodeSignature

§

impl Unpin for CodeSignature

§

impl UnwindSafe for CodeSignature

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

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

§

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
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

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

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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.
§

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

Performs the conversion.