// This file was automatically generated by `elaborate`.
// https://github.com/trailofbits/elaborate

#[allow(unused_imports)]
use anyhow::Context;


#[cfg(feature = "unix_send_signal")]
#[cfg(unix)]
pub trait ChildExtContext: std :: os :: unix :: process :: ChildExt {
/// Sends a signal to a child process.
/// 
/// # Errors
/// 
/// This function will return an error if the signal is invalid. The integer values associated
/// with signals are implementation-specific, so it's encouraged to use a crate that provides
/// posix bindings.
/// 
/// # Examples
/// 
/// ```rust
/// #![feature(unix_send_signal)]
/// 
/// use std::{io, os::unix::process::ChildExt, process::{Command, Stdio}};
/// 
/// use libc::SIGTERM;
/// 
/// fn main() -> io::Result<()> {
///     # if cfg!(not(all(target_vendor = "apple", not(target_os = "macos")))) {
///     let child = Command::new("cat").stdin(Stdio::piped()).spawn()?;
///     child.send_signal(SIGTERM)?;
///     # }
///     Ok(())
/// }
/// ```
fn send_signal_wc ( & self , signal : i32 ) -> crate :: rewrite_output_type ! ( std :: io :: Result < ( ) > ) {
    < Self as :: std :: os :: unix :: process :: ChildExt > :: send_signal(self, signal)
        .with_context(|| crate::call_failed!(Some(self), "send_signal", signal))
}
}

#[cfg(feature = "unix_send_signal")]
#[cfg(unix)]
impl<T> ChildExtContext for T where T: std :: os :: unix :: process :: ChildExt {}


