pub fn loose_header(
    input: &[u8]
) -> Result<(Kind, usize, usize), LooseHeaderDecodeError>
Expand description

Decode a loose object header, being <kind> <size>\0, returns (kind, size, consumed bytes).

size is the uncompressed size of the payload in bytes.

Examples found in repository?
src/object/mod.rs (line 193)
192
193
194
195
196
197
198
199
200
201
202
    pub fn from_loose(data: &'a [u8]) -> Result<ObjectRef<'a>, LooseDecodeError> {
        let (kind, size, offset) = loose_header(data)?;

        let body = &data[offset..]
            .get(..size)
            .ok_or(LooseHeaderDecodeError::InvalidHeader {
                message: "object data was shorter than its size declared in the header",
            })?;

        Ok(Self::from_bytes(kind, body)?)
    }