Skip to main content

Act

Struct Act 

Source
pub struct Act<'a> {
    pub label: &'a str,
    pub key: Option<&'a str>,
    pub tone: Tone,
    pub state: Option<State>,
    pub hint: Option<&'a str>,
    pub commits: bool,
}

Fields§

§label: &'a str

What the control says.

§key: Option<&'a str>

The key that reaches it where a host has keys.

The one member written for a terminal before there was one. A webview hangs it off accesskey or ignores it; a terminal has nothing else to offer, so this is the whole of how a control is reached there.

§tone: Tone

What pressing it means. Tone::Danger is the destructive one.

§state: Option<State>

Disabled, or nothing said.

State::Disabled is what changes what a renderer may do: see State::suppresses_interaction, which is what says a disabled control is drawn and not reachable. A control’s focus is not sayable here at all: see the crate header, “Reach, focus and the focus ring”.

§hint: Option<&'a str>

A sentence that is always true of this control, shown rather than hunted for.

Standing help, not a message and not a tooltip. Half the hosts that read this have no pointer: a hover is one spelling of it, and the shipped apps reached for that spelling only because egui and a browser both had one. What is being said is that the sentence is true, never that it is hidden until a pointer arrives.

§Why it is here rather than a layer up

A hint left to quasi_router::Act alone means each renderer draws it for itself: makeover_tui had no hint to read, so quasi-tui built the muted line, and quasi-immediate called on_hover_text outside crate::Act rather than inside it. Field::hint was here the whole time, so the same idea sat at two layers depending on which thing carried it, and a host that was not quasi could say it of a field and not of a control.

What kept it out was price rather than doubt: this crate declares links, so a member here moves 25 manifests across 12 repos. That is a release’s forward-fix pass, which is a cost and was being read as a barrier.

§What a renderer owes it

Somewhere to put it, or nothing. Dropping it is legitimate; drawing it instead of the label is not, and neither is drawing it in a way that takes it out of the accessible tree, which is the failure title alone has on a browser. Nothing may live only in a hint.

None is a control whose label is the whole of it, which is nearly all of them.

§commits: bool

Whether pressing it commits: the one control that locks in what the reader has staged.

A form’s submit, or the verb over a set of ticked rows. Wiki explicit-commit-affordance is the ruling: changing a control stages a change, and a separate, visible control commits it, and the commit is what the reader sees. So the control has to be told apart from the controls beside it that only navigate or stage, and wiki look-restoration says how far that goes: the mark goes on the control that commits and on nothing else, not on every control that writes.

§What a renderer owes it

A spelling the reader can pick out at a glance, and the same one every time. A webview draws the default-button ring the Platinum specimen picked and never shipped; a terminal writes [ Label ] where an ordinary control is < Label >; an immediate-mode host strokes a frame round the button. Nothing else changes: a committing control takes its tone, its key, its state and its hint exactly as any other.

§Why a member and not a renderer’s inference

Each renderer could guess it from the node a control sits in, and each was left to: makeover-tui grew filled_act for a form’s submit, which no caller in the tree reached, while the webview drew every submit like every other button. A fact the description has is said here once, which is the reason hint is here too.

false on nearly every control.

Implementations§

Source§

impl<'a> Act<'a>

Source

pub const fn new(label: &'a str) -> Self

An ordinary control, reachable, with no key.

Source

pub const fn committing(self) -> Self

The control that commits what the reader staged; see commits.

Source

pub const fn hinted(self, hint: &'a str) -> Self

The sentence that is always true of it; see hint.

A renderer with nowhere to put it drops it, so this must never be the only place a fact appears.

Source

pub const fn key(self, key: &'a str) -> Self

The key that reaches it.

Source

pub const fn tone(self, tone: Tone) -> Self

What pressing it means.

Source

pub const fn state(self, state: State) -> Self

Focus, or disabled.

Source

pub fn disabled(&self) -> bool

Whether the control is drawn and does not answer.

Trait Implementations§

Source§

impl<'a> Clone for Act<'a>

Source§

fn clone(&self) -> Act<'a>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<'a> Copy for Act<'a>

Source§

impl<'a> Debug for Act<'a>

Source§

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

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

impl<'a> Eq for Act<'a>

Source§

impl<'a> Hash for Act<'a>

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<'a> PartialEq for Act<'a>

Source§

fn eq(&self, other: &Act<'a>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl<'a> StructuralPartialEq for Act<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Act<'a>

§

impl<'a> RefUnwindSafe for Act<'a>

§

impl<'a> Send for Act<'a>

§

impl<'a> Sync for Act<'a>

§

impl<'a> Unpin for Act<'a>

§

impl<'a> UnsafeUnpin for Act<'a>

§

impl<'a> UnwindSafe for Act<'a>

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 = !

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.