Skip to main content

Message

Struct Message 

Source
pub struct Message { /* private fields */ }
Expand description

A sentence to show the user once, with an optional thing to do about it.

ⓘ
Message::new("Task deleted")
    .with_action("Undo", move |()| restore())
    .with_duration(MessageDuration::Long)
    .show();

What it looks like is the design system’s: Material calls it a snackbar, Apple a transient overlay, GNOME a toast, the same way it decides what a Dialog looks like. Where it appears is the design system’s too, unless the application asks for a place with Message::with_placement or a distance from the edge with Message::with_offset.

Implementations§

Source§

impl Message

Source

pub fn new(text: impl Into<String>) -> Self

Source

pub fn with_action( self, label: impl Into<String>, on_action: impl FnMut(()) + 'static, ) -> Self

Adds the one thing the user can do about the message, such as undoing it.

The action runs on the UI thread, inside the runtime the application launched, so it can change the same state an event handler can.

Source

pub fn with_duration(self, duration: MessageDuration) -> Self

Source

pub fn with_placement(self, placement: MessagePlacement) -> Self

Draws the message along placement’s edge, at placement’s end of it, rather than where the design system would put it.

The place is measured from inside the safe area and the application’s own bars, so a message at the bottom is above a bottom tab bar and one at the top is below the top bar.

ⓘ
Message::new("Copied")
    .with_placement(MessagePlacement {
        vertical: MessageVertical::Bottom,
        horizontal: MessageHorizontal::Center,
    })
    .with_offset(96.0)
    .show();
Source

pub fn with_offset(self, dp: f32) -> Self

How far the message is from the edge it is drawn along, in dp, in place of the design system’s distance. It is measured from the safe area and the bars, as the placement is. A negative or non-finite distance is taken as zero, because a message pushed off the screen is a message nobody reads.

Source

pub fn show(self)

Hands the message over. It goes out with the batch this call produces.

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