//! View — чистая функция от состояния, возвращающая сообщения.
//!
//! В отличие от [`Component`], View не хранит состояние, не знает
//! о каналах и data layer. Это просто функция:
//!
//! ```ignore
//! fn my_view(state: &MyState, ui: &mut egui::Ui) -> Vec<MyMessage>
//! ```
//!
//! Такая функция легко тестируется, переиспользуется и не содержит
//! побочных эффектов. Вся логика живёт в Component.

/// Сигнатура View-функции.
///
/// `S` — тип состояния, `M` — тип сообщения.
pub type ViewFn<S, M> = fn(state: &S, ui: &mut egui::Ui) -> Vec<M>;
