diff --git a/crates/pcraft-bundle/src/lib.rs b/crates/pcraft-bundle/src/lib.rs index e44c23044..9b2932523 100644 --- a/crates/pcraft-bundle/src/lib.rs +++ b/crates/pcraft-bundle/src/lib.rs @@ -165,6 +165,14 @@ impl<'a> ZipBundle<'a> { self.read(craft_pcraft_format::MANIFEST, self.limits.max_manifest_bytes) } + /// Reads any canonical bundle entry, including the stored zstd bytes of an object. + pub fn entry(&mut self, path: &str, max_bytes: u64) -> Result>> { + if !valid_entry_path(path) { + return Err(Error::InvalidPath(path.to_owned())); + } + self.archive.read(path, max_bytes).map_err(Into::into) + } + /// Reads an optional preview entry. pub fn preview(&mut self, path: &str) -> Result>> { if !matches!(path, craft_pcraft_format::THUMB | craft_pcraft_format::COMPOSITE | craft_pcraft_format::FULL_COMPOSITE) {