dochy_diff 0.10.1

Calculates Dochy Diff.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use dochy_core::structs::{MutListVal, ListDefObj, MetaTables};
use crate::imp::structs_write::{ListDiffW, ListItemDiffEnumW, BS};
use crate::imp::prepare::new_item::new_item;

pub(crate) fn new_list<'a, 'b>(mil : &'a MutListVal, def : &'a ListDefObj, meta : &'a MetaTables) -> ListDiffW<'a>{
    let mut result : Vec<(u64, ListItemDiffEnumW)> = Vec::new();

    let mut prev_id : Option<u64> = None;
    for (&id, item) in mil.list() {
        result.push((id, ListItemDiffEnumW::Create(
            BS{ prev_id, diff : new_item(item, def, meta) })));
        prev_id = Some(id);
    }

    ListDiffW::new(result, meta, mil.list().next_id())
}