pub fn drain(reader: impl Read, maximum: usize) -> Result<(Vec<u8>, bool)>
Keep draining beyond the limit to avoid pipe deadlocks; never retain excess bytes.