Trait cosmic::widget::menu::action::MenuAction

source ·
pub trait MenuAction:
    Clone
    + Copy
    + Eq
    + PartialEq {
    type Message;

    // Required method
    fn message(&self) -> Self::Message;
}
Expand description

MenuAction is a trait that represents an action in a menu.

It is used to define the behavior of menu items when they are activated. Each menu item can have a unique action associated with it.

This trait is generic over a type Message which is the type of message that will be produced when the action is triggered.

§Example

use cosmic::widget::menu::action::MenuAction;
use cosmic::widget::segmented_button::Entity;

#[derive(Clone, Copy, Eq, PartialEq)]
enum MyMessage {
    Open,
    Save,
    Quit,
}

#[derive(Clone, Copy, Eq, PartialEq)]
enum MyAction {
    Open,
    Save,
    Quit,
}

impl MenuAction for MyAction {
    type Message = MyMessage;

    fn message(&self) -> Self::Message {
        match self {
            MyAction::Open => MyMessage::Open,
            MyAction::Save => MyMessage::Save,
            MyAction::Quit => MyMessage::Quit,
        }
    }
}

Required Associated Types§

source

type Message

The type of message that will be produced when the action is triggered.

Required Methods§

source

fn message(&self) -> Self::Message

Returns a message of type Self::Message when the action is triggered.

§Returns
  • Self::Message - The message that is produced when the action is triggered.

Object Safety§

This trait is not object safe.

Implementors§