tui_additions/framework/
frameworkclean.rs

1use ratatui::layout::Rect;
2
3use super::{CursorState, Framework, FrameworkData, State};
4
5/// A version of `Framework` that does not include `State` and everything is a mutable reference
6pub struct FrameworkClean<'a> {
7    pub selectables: &'a mut Vec<Vec<(usize, usize)>>,
8    pub data: &'a mut FrameworkData,
9    pub cursor: &'a mut CursorState,
10    pub frame_area: &'a mut Option<Rect>,
11}
12
13impl<'a> From<&'a mut Framework> for (FrameworkClean<'a>, &'a mut State) {
14    fn from(original: &'a mut Framework) -> (FrameworkClean<'a>, &'a mut State) {
15        let state = &mut original.state;
16        let frameworkclean = FrameworkClean {
17            selectables: &mut original.selectables,
18            data: &mut original.data,
19            cursor: &mut original.cursor,
20            frame_area: &mut original.frame_area,
21        };
22
23        (frameworkclean, state)
24    }
25}