|  | @@ -2,7 +2,7 @@ use std::{
 | 
	
		
			
				|  |  |      fs::{self, File},
 | 
	
		
			
				|  |  |      io::{self, Write as _},
 | 
	
		
			
				|  |  |      path::{Path, PathBuf},
 | 
	
		
			
				|  |  | -    process::Command,
 | 
	
		
			
				|  |  | +    process::{Command, Output},
 | 
	
		
			
				|  |  |      str,
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -14,14 +14,14 @@ pub enum Error {
 | 
	
		
			
				|  |  |      #[error("error executing bpftool")]
 | 
	
		
			
				|  |  |      BpfTool(#[source] io::Error),
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    #[error("{stderr}\nbpftool failed with exit code {code}")]
 | 
	
		
			
				|  |  | -    BpfToolExit { code: i32, stderr: String },
 | 
	
		
			
				|  |  | +    #[error("bpftool failed: {0:?}")]
 | 
	
		
			
				|  |  | +    BpfToolExit(Output),
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      #[error("bindgen failed")]
 | 
	
		
			
				|  |  |      Bindgen(#[source] io::Error),
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    #[error("{stderr}\nbindgen failed with exit code {code}")]
 | 
	
		
			
				|  |  | -    BindgenExit { code: i32, stderr: String },
 | 
	
		
			
				|  |  | +    #[error("bindgen failed: {0:?}")]
 | 
	
		
			
				|  |  | +    BindgenExit(Output),
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      #[error("error reading header file")]
 | 
	
		
			
				|  |  |      ReadHeaderFile(#[source] io::Error),
 | 
	
	
		
			
				|  | @@ -74,14 +74,13 @@ pub fn generate<T: AsRef<str>>(
 | 
	
		
			
				|  |  |          .output()
 | 
	
		
			
				|  |  |          .map_err(Error::Bindgen)?;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    if !output.status.success() {
 | 
	
		
			
				|  |  | -        return Err(Error::BindgenExit {
 | 
	
		
			
				|  |  | -            code: output.status.code().unwrap(),
 | 
	
		
			
				|  |  | -            stderr: str::from_utf8(&output.stderr).unwrap().to_owned(),
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | +    let Output { status, .. } = &output;
 | 
	
		
			
				|  |  | +    if !status.success() {
 | 
	
		
			
				|  |  | +        return Err(Error::BindgenExit(output));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    let Output { stdout, .. } = output;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    Ok(str::from_utf8(&output.stdout).unwrap().to_owned())
 | 
	
		
			
				|  |  | +    Ok(String::from_utf8(stdout).unwrap())
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  fn c_header_from_btf(path: &Path) -> Result<String, Error> {
 | 
	
	
		
			
				|  | @@ -92,14 +91,13 @@ fn c_header_from_btf(path: &Path) -> Result<String, Error> {
 | 
	
		
			
				|  |  |          .output()
 | 
	
		
			
				|  |  |          .map_err(Error::BpfTool)?;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    if !output.status.success() {
 | 
	
		
			
				|  |  | -        return Err(Error::BpfToolExit {
 | 
	
		
			
				|  |  | -            code: output.status.code().unwrap(),
 | 
	
		
			
				|  |  | -            stderr: str::from_utf8(&output.stderr).unwrap().to_owned(),
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | +    let Output { status, .. } = &output;
 | 
	
		
			
				|  |  | +    if !status.success() {
 | 
	
		
			
				|  |  | +        return Err(Error::BpfToolExit(output));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    let Output { stdout, .. } = output;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    Ok(str::from_utf8(&output.stdout).unwrap().to_owned())
 | 
	
		
			
				|  |  | +    Ok(String::from_utf8(stdout).unwrap())
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  fn extract_ctypes_prefix(s: &[String]) -> (Vec<String>, Option<String>) {
 |