Skip to main content

EnvField

Struct EnvField 

Source
pub struct EnvField {
    pub name: &'static str,
    pub from: &'static str,
    pub node: &'static [&'static str],
    pub lua: &'static [&'static str],
    pub c: &'static str,
    pub doc: &'static str,
    pub get: fn(&EnvFacts) -> Value,
}
Expand description

One value in the host-environment reading a view gets — ui.env() in Rust, view(env) in Lua, ctx.env() / win.env() in Node — and the key each binding puts it under. C has no reading: a C host is the frame driver, so it is the writer (kui_env_set, kui_env_set_window), and its column names the argument that carries the fact in.

Env and WindowEnv are the shape; this table is the cross-binding restatement of it, and every restatement is pinned to it rather than trusted: schema’s tests check the rows against the two structs, the Lua and Node key-set tests check each binding’s reading against the lua / node columns, and kui-ffi checks the header’s two prototypes against the c column. The frame facts a view wants at the same moment (the viewport, the focused node) ride in the same reading and have rows here too, marked as the frame’s rather than Env’s.

Two divergences are deliberate and named in their rows: native_controls is the Rect the core holds in Node and a width/height at the window origin in Lua and C, and frame_budget_ms is derived from refresh_hz but part of the reading everywhere.

Fields§

§name: &'static str

The canonical name: the Rust field path (window.custom_chrome).

§from: &'static str

Where it comes from — the Rust struct and field for a stored fact, the call for a derived or frame fact.

§node: &'static [&'static str]

The key path(s) it occupies in Node’s ctx.env(); empty when Node carries the fact as a call on the context instead (the doc says which) or not at all.

§lua: &'static [&'static str]

The same for Lua’s view(env) table. Two entries where Lua flattens one fact into two keys.

§c: &'static str

The C spelling: function(argument) for the setter argument that writes it — the first thing in the cell, so kui-ffi can parse it — or the call that reads it.

§doc: &'static str§get: fn(&EnvFacts) -> Value

The fact’s reading, as plain data: Null for “the host cannot tell”, an enum as its wire name, a key as its integer, a rect as {x, y, w, h}. What makes the table a reader and not only a pin — a binding iterates the rows and asks each for its value, then spells the key its own way, so a fact added here reaches every reading with no reader restated beside it (the way ThemeRole::get does for the palette).

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

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

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more