summaryrefslogtreecommitdiff
path: root/src/chunk.rs
blob: 29d64a2d4ae5df33945c0e8eae57eb58d6c1eb7f (plain)
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
use crate::chunkmeta::ChunkMeta;

/// Store an arbitrary chunk of data.
///
/// The data is just arbitrary binary data.
///
/// A chunk also contains its associated metadata, except its
/// identifier.
pub struct Chunk {
    meta: ChunkMeta,
    data: Vec<u8>,
}

impl Chunk {
    /// Construct a new chunk.
    pub fn new(meta: ChunkMeta, data: Vec<u8>) -> Self {
        Chunk { meta, data }
    }

    /// Return a chunk's metadata.
    pub fn meta(&self) -> &ChunkMeta {
        &self.meta
    }

    /// Return a chunk's data.
    pub fn data(&self) -> &[u8] {
        &self.data
    }
}