From 0bc14ecaafabc6be57392e9092f07472c440ae46 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Thu, 17 Sep 2020 09:28:41 +0300 Subject: feat: add initial Chunk struct --- src/chunk.rs | 29 +++++++++++++++++++++++++++++ src/lib.rs | 1 + 2 files changed, 30 insertions(+) create mode 100644 src/chunk.rs (limited to 'src') 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, +} + +impl Chunk { + /// Construct a new chunk. + pub fn new(meta: ChunkMeta, data: Vec) -> 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 + } +} diff --git a/src/lib.rs b/src/lib.rs index a0a24d4..3c99f83 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,2 +1,3 @@ +pub mod chunk; pub mod chunkid; pub mod chunkmeta; -- cgit v1.2.1