ratatui_toolkit/primitives/toast/constructors/toast_new.rs
1use crate::primitives::toast::{Toast, ToastLevel, DEFAULT_TOAST_DURATION};
2use std::time::{Duration, Instant};
3
4impl Toast {
5 /// Create a new toast with an optional duration.
6 ///
7 /// If `duration` is `None`, uses the default duration (5 seconds).
8 ///
9 /// # Arguments
10 ///
11 /// * `message` - The toast message
12 /// * `level` - The toast level (Success, Error, Info, Warning)
13 /// * `duration` - Optional duration, defaults to 5 seconds if None
14 pub fn new(message: impl Into<String>, level: ToastLevel, duration: Option<Duration>) -> Self {
15 Self {
16 message: message.into(),
17 level,
18 created_at: Instant::now(),
19 duration: duration.unwrap_or(DEFAULT_TOAST_DURATION),
20 }
21 }
22}