Skip to main content

PlatformImpl

Struct PlatformImpl 

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

Table of pointers to platform abstraction layer functions.

Implementations§

Source§

impl PlatformImpl

Source

pub fn new(source_filename: Option<&'static CStr>) -> Self

Create a new, empty PlatformImpl.

By default, all function pointers are null, meaning the default implementations will be used.

§Arguments
  • source_filename - Optional C string representing the source filename the platform implementation is defined in. In case of multiple platform implementations being registered, this can help in debugging. To obtain a &'static CStr for the current file, you can use CStr::from_bytes_with_nul_unchecked(concat!(file!(), "\0").as_bytes()).
Source

pub fn set_init<F>(&mut self, f: F)
where F: Fn() + Copy + Send + Sync + 'static,

Set the init function.

The init function initialize the platform abstraction layer. It should be called before any other function provided by the PAL to initialize any global state.

The closure will be passed through FFI and called later by the Cpp ExecuTorch library. The closure must be zero-sized, trivially copyable (and dropped), Send, Sync, and ’static.

§Panics

This function will panic if the provided closure is not zero-sized.

Source

pub fn set_abort<F>(&mut self, f: F)
where F: Fn() + Copy + Send + Sync + 'static,

Set the abort function.

The abort function immediately abort execution, setting the device into an error state, if available.

The closure will be passed through FFI and called later by the Cpp ExecuTorch library. The closure must be zero-sized, trivially copyable (and dropped), Send, Sync, and ’static.

§Panics

This function will panic if the provided closure is not zero-sized.

Source

pub fn set_current_ticks<F>(&mut self, f: F)
where F: Fn() -> Timestamp + Copy + Send + Sync + 'static,

Set the current_ticks function.

The current_ticks function returns a monotonically non-decreasing timestamp in system ticks.

The closure will be passed through FFI and called later by the Cpp ExecuTorch library. The closure must be zero-sized, trivially copyable (and dropped), Send, Sync, and ’static.

§Panics

This function will panic if the provided closure is not zero-sized.

Source

pub fn set_ticks_to_ns_multiplier<F>(&mut self, f: F)
where F: Fn() -> TickRatio + Copy + Send + Sync + 'static,

Set the ticks_to_ns_multiplier function.

The ticks_to_ns_multiplier function returns the conversion rate from system ticks to nanoseconds as a fraction. To convert a system ticks to nanoseconds, multiply the tick count by the numerator and then divide by the denominator:

  nanoseconds = ticks * numerator / denominator

The closure will be passed through FFI and called later by the Cpp ExecuTorch library. The closure must be zero-sized, trivially copyable (and dropped), Send, Sync, and ’static.

§Panics

This function will panic if the provided closure is not zero-sized.

Source

pub fn set_emit_log_message<F>(&mut self, f: F)
where F: Fn(LogEntry<'_>) + Copy + Send + Sync + 'static,

Set the emit_log_message function.

The closure will be passed through FFI and called later by the Cpp ExecuTorch library. The closure must be zero-sized, trivially copyable (and dropped), Send, Sync, and ’static.

§Panics

This function will panic if the provided closure is not zero-sized.

Source

pub fn set_allocate<F>(&mut self, f: F)
where F: Fn(usize) -> Option<NonNull<c_void>> + Copy + Send + Sync + 'static,

Set the allocate function.

The allocate function allocates a block of memory of the given size in bytes and returns a pointer to it. May return None if the allocation fails. Memory allocated by this function will be freed later by a call to the platform’s free function.

The closure will be passed through FFI and called later by the Cpp ExecuTorch library. The closure must be zero-sized, trivially copyable (and dropped), Send, Sync, and ’static.

§Panics

This function will panic if the provided closure is not zero-sized.

Source

pub fn set_free<F>(&mut self, f: F)
where F: Fn(*mut c_void) + Copy + Send + Sync + 'static,

Set the free function.

The free function frees a block of memory previously allocated by the platform’s allocate function.

The closure will be passed through FFI and called later by the Cpp ExecuTorch library. The closure must be zero-sized, trivially copyable (and dropped), Send, Sync, and ’static.

§Panics

This function will panic if the provided closure is not zero-sized.

Trait Implementations§

Source§

impl Clone for PlatformImpl

Source§

fn clone(&self) -> Self

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

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§

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