summaryrefslogtreecommitdiff
path: root/src/chunk.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/chunk.rs')
-rw-r--r--src/chunk.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/chunk.rs b/src/chunk.rs
new file mode 100644
index 0000000..29d64a2
--- /dev/null
+++ b/src/chunk.rs
@@ -0,0 +1,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
+ }
+}