Skip to main content

Host

Struct Host 

Source
pub struct Host { /* private fields */ }

Implementations§

Source§

impl Host

Source

pub fn new( factory: impl Fn() -> Box<dyn Runtime> + Send + Sync + 'static, ) -> Self

A Host for the runtime factory makes, in the theme the application launched with.

Source

pub fn with_theme( factory: impl Fn() -> Box<dyn Runtime> + Send + Sync + 'static, theme: Theme, ) -> Self

The theme the application chose. Choosing nothing follows the host platform, with Material 3 where the platform has no look of its own.

Source

pub fn rebuild(&mut self) -> Result<&[u8], ProtocolError>

Source

pub fn dispatch_event( &mut self, bytes: &[u8], ) -> Result<(&[u8], i64), ProtocolError>

Source

pub fn arena(&self) -> (*const u8, usize)

The batch arena, reported to the Renderer on every boundary call.

Source

pub fn resync(&mut self) -> Result<(&[u8], i64), ProtocolError>

Answers with the whole tree, for a Renderer that no longer has a node table.

The Host keeps no shadow of what it has already sent, so the only way to produce a full-tree batch is to build the application again, and that resets component state. A Renderer that keeps its node table across a configuration change never needs this call, which is what the Android host does.

Source

pub fn dispatch( &mut self, event: HostEvent<'_>, ) -> Result<(&[u8], i64), ProtocolError>

Source

pub fn render_frame( &mut self, _frame_time_nanos: u64, ) -> Result<&[u8], ProtocolError>

Source

pub fn append_text(&mut self, node_id: u32, tail: &str)

Queues a streamed tail for the next frame. Tokens arriving inside one frame are merged into a single AppendText record, so a token never costs a batch of its own.

Source

pub fn register_asset( &mut self, asset_id: u32, kind: AssetKind, bytes: &[u8], ) -> Result<&[u8], ProtocolError>

Registers one asset and returns the batch that carries it.

The bytes are copied once here and once more by the Renderer into its cache. After that the id is all that travels, so drawing the same image every frame costs a fixed-layout property record and nothing else.

Source

pub fn register_icon( &mut self, asset_id: u32, role: IconRole, ) -> Result<&[u8], ProtocolError>

Registers an icon by the meaning it carries. The Renderer holds the artwork for every design system, so what crosses is the role and not a picture or a name.

Source

pub fn release_asset(&mut self, asset_id: u32) -> Result<&[u8], ProtocolError>

Drops the asset from the Renderer’s cache. Using the id afterwards is a reported protocol error.

Source

pub fn set_text( &mut self, node_id: u32, text: &str, selection: Option<Selection>, ) -> Result<&[u8], ProtocolError>

Auto Trait Implementations§

§

impl !RefUnwindSafe for Host

§

impl !Send for Host

§

impl !Sync for Host

§

impl !UnwindSafe for Host

§

impl Freeze for Host

§

impl Unpin for Host

§

impl UnsafeUnpin for Host

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.