summaryrefslogtreecommitdiffstats
path: root/wgpu/src/widget/canvas/data.rs
blob: 25d94f4cc380141b55d57b59e02a7aab323a340f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct Data<T> {
    raw: T,
    version: usize,
}

impl<T> Data<T> {
    pub fn new(data: T) -> Self {
        Data {
            raw: data,
            version: 0,
        }
    }

    pub fn update(&mut self, f: impl FnOnce(&mut T)) {
        f(&mut self.raw);

        self.version += 1;
    }
}