1use crate::Patch;
4
5#[derive(Clone, Debug, Eq, PartialEq)]
7pub enum Mail<'mail> {
8 Git(Patch<'mail>),
10 Mail(String),
12}
13
14pub struct PatchTree<'mail> {
16 pub this: Mail<'mail>,
18 pub children: Vec<PatchTree<'mail>>,
20 pub selected: bool,
22}
23
24impl<'mail> PatchTree<'mail> {
25 pub fn new(initial: Patch<'mail>) -> Self {
26 Self {
27 this: Mail::Git(initial),
28 children: Default::default(),
29 selected: false,
30 }
31 }
32
33 pub fn select(&mut self) {
35 self.selected = true;
36 }
37
38 pub fn deselect(&mut self) {
40 self.selected = false;
41 }
42}