use iced::Event; use iced::widget::Id; use iced_layershell::to_layer_message; pub struct State { pub current_message: String, pub history: Vec, pub input_id: Id, } pub struct History { pub promt: String, pub output: String, } impl History { pub fn new(promt: String, output: String) -> Self { Self { promt, output } } } impl Default for State { fn default() -> Self { Self { current_message: String::new(), history: Vec::new(), input_id: Id::unique(), } } } #[to_layer_message] #[derive(Debug, Clone)] pub enum Message { Init, TextSubmit, TextInput(String), IcedEvent(Event), }