chunk_diff/frame/
changed.rs

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
use crate::util::{chunk::Chunk, rect::Rect};
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug)]
pub struct Changed {
    chunk: Chunk,
    data: Vec<Vec<u8>>,
}

impl Changed {
    pub fn new(chunk: Chunk, data: Vec<Vec<u8>>) -> Self {
        Self { chunk, data }
    }

    pub fn chunk(&self) -> &Chunk {
        &self.chunk
    }

    pub fn data(&self) -> &Vec<Vec<u8>> {
        &self.data
    }

    pub fn apply(&self, data: &mut [u8], full: &Rect) {
        self.chunk.apply(data, &self.data, full);
    }
}