add all autotraits to output_or_stdout trait object
just in case we ever need any of them in async code that requires them and loses it because of accessing such a trait object... Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
parent
bf95fba72e
commit
67678ec39c
|
@ -1,13 +1,16 @@
|
|||
use std::fs::File;
|
||||
use std::io::{self, stdout, Write};
|
||||
use std::path::Path;
|
||||
use std::panic::{RefUnwindSafe, UnwindSafe};
|
||||
|
||||
/// Returns either a new file, if a path is given, or stdout, if no path is given.
|
||||
pub fn outfile_or_stdout<P: AsRef<Path>>(path: Option<P>) -> io::Result<Box<dyn Write>> {
|
||||
pub fn outfile_or_stdout<P: AsRef<Path>>(
|
||||
path: Option<P>,
|
||||
) -> io::Result<Box<dyn Write + Send + Sync + Unpin + RefUnwindSafe + UnwindSafe>> {
|
||||
if let Some(path) = path {
|
||||
let f = File::create(path)?;
|
||||
Ok(Box::new(f) as Box<dyn Write>)
|
||||
Ok(Box::new(f) as Box<_>)
|
||||
} else {
|
||||
Ok(Box::new(stdout()) as Box<dyn Write>)
|
||||
Ok(Box::new(stdout()) as Box<_>)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue