use iced::{ widget::{button, column, container, horizontal_rule, row, text, toggler, vertical_rule}, Element, Task, }; use crate::models::{Filter, FilterConfig, FilterRule, FilterText, Settings}; use super::rule_list; pub struct App { pub settings: Settings, pub filter_config: FilterConfig, } #[derive(Debug, Clone, Copy)] pub enum Message { RuleList(rule_list::Message), } pub fn view(state: &App) -> Element { container( row![ rule_list::view(&state.filter_config).map(Message::RuleList), vertical_rule(2), column![] ] .spacing(8), ) .padding(8) .into() } pub fn update(state: &mut App, msg: Message) -> Task { match msg { Message::RuleList(msg) => { rule_list::update(&mut state.filter_config, msg).map(Message::RuleList) } } }