1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
use docchi_core::structs::{RustParam, Qv};
pub struct RootDiffR{
params : Vec<(usize, RustParam)>,
lists : Vec<(usize, Option<ListDiffR>)>,
}
impl RootDiffR{
pub(crate) fn new(params : Vec<(usize, RustParam)>, lists : Vec<(usize, Option<ListDiffR>)>) -> RootDiffR{
RootDiffR { params, lists }
}
pub(crate) fn default() -> RootDiffR{ RootDiffR{ params : Vec::new(), lists : Vec::new() }}
pub(crate) fn deconstruct(self) -> (Vec<(usize, RustParam)>, Vec<(usize, Option<ListDiffR>)>){ (self.params, self.lists) }
}
pub(crate) struct ListDiffR{
items : Vec<(u64, ListItemDiffEnumR)>,
next_id : u64,
}
impl ListDiffR{
pub(crate) fn new(items : Vec<(u64, ListItemDiffEnumR)>, next_id : u64) -> ListDiffR{
ListDiffR{ items, next_id }
}
pub(crate) fn deconstruct(self) -> (u64, Vec<(u64, ListItemDiffEnumR)>){ (self.next_id, self.items) }
}
pub(crate) enum ListItemDiffEnumR{
Delete,
Create(CS),
Modify(ListItemDiffR),
}
pub(crate) struct CS{
pub(crate) prev_id : Option<u64>,
pub(crate) diff : ListItemDiffR,
}
pub(crate) struct ListItemDiffR{
params : Vec<(usize, RustParam)>,
lists : Vec<(usize, Option<ListDiffR>)>,
refs : Vec<(usize, Qv<String>)>,
}
impl ListItemDiffR{
pub(crate) fn new(
params : Vec<(usize, RustParam)>,
lists : Vec<(usize, Option<ListDiffR>)>,
refs : Vec<(usize, Qv<String>)>) -> ListItemDiffR{
ListItemDiffR{ params, lists, refs, }
}
pub(crate) fn deconstruct(self)
-> (Vec<(usize, RustParam)>, Vec<(usize, Option<ListDiffR>)>,Vec<(usize, Qv<String>)>){
(self.params, self.lists, self.refs)
}
}