diff --git a/crates/doc/src/pcraft.rs b/crates/doc/src/pcraft.rs index c9788290..e0e7f3b8 100644 --- a/crates/doc/src/pcraft.rs +++ b/crates/doc/src/pcraft.rs @@ -207,14 +207,6 @@ pub(crate) fn outline(bytes: &[u8], budget: &mut Budget) -> Result(bytes: &'a [u8], budget: &mut Budget) -> Result<(Zip<'a>, D), Error> { - let (zip, json) = manifest(bytes, budget)?; - let document = read::(&json, budget)?.document; - Ok((zip, document)) -} - /// The archive and a document head, with structural items checked before deserialization. #[cfg(feature = "pcraft-pixels")] pub(crate) fn document_with_items<'a, D: DeserializeOwned>(bytes: &'a [u8], budget: &mut Budget) -> Result<(Zip<'a>, D), Error> { @@ -222,3 +214,11 @@ pub(crate) fn document_with_items<'a, D: DeserializeOwned>(bytes: &'a [u8], budg let max_items = usize::try_from(budget.limits.max_items).unwrap_or(usize::MAX); Ok((zip, read_with_items::(&json, budget, max_items)?.document)) } + +/// The archive and the manifest's document read as `D`, checked as [`outline`] reads it. +#[cfg(feature = "pcraft-pixels")] +pub(crate) fn document<'a, D: DeserializeOwned>(bytes: &'a [u8], budget: &mut Budget) -> Result<(Zip<'a>, D), Error> { + let (zip, json) = manifest(bytes, budget)?; + let document = read::(&json, budget)?.document; + Ok((zip, document)) +}