use std::ffi::OsStr;
use std::os::windows::io::{AsRawHandle, RawHandle};
use std::os::windows::process::CommandExt as _;
use crate::{Child, Command};
pub trait CommandExt: crate::sealed::Sealed {
fn creation_flags(&mut self, flags: u32) -> &mut Command;
fn raw_arg<S: AsRef<OsStr>>(&mut self, text_to_append_as_is: S) -> &mut Command;
}
impl crate::sealed::Sealed for Command {}
impl CommandExt for Command {
fn creation_flags(&mut self, flags: u32) -> &mut Command {
self.inner.creation_flags(flags);
self
}
fn raw_arg<S: AsRef<OsStr>>(&mut self, text_to_append_as_is: S) -> &mut Command {
self.inner.raw_arg(text_to_append_as_is);
self
}
}
impl AsRawHandle for Child {
fn as_raw_handle(&self) -> RawHandle {
self.child.lock().unwrap().get_mut().as_raw_handle()
}
}