pub struct Output(/* private fields */);
Expand description
Represents an output sink, which can be either standard output or a file.
§Examples
use std::io::{self, Write as _};
use clap::Parser as _;
use clap_file::Output;
#[derive(Debug, clap::Parser)]
struct Args {
/// output file. If not provided, reads from standard output.
output: Output,
}
fn main() -> io::Result<()> {
let args = Args::parse();
let mut output = args.output.lock();
writeln!(&mut output, "Hello, world!")?;
Ok(())
}
Implementations§
Source§impl Output
impl Output
Sourcepub fn create(path: PathBuf) -> Result<Self>
pub fn create(path: PathBuf) -> Result<Self>
Creates a file at the given path and creates a new Output
instance that writes to it.
Sourcepub fn lock(&self) -> LockedOutput<'_> ⓘ
pub fn lock(&self) -> LockedOutput<'_> ⓘ
Locks this Output
for writing and returns a writable guard.
This lock is released when the returned LockedOutput
instance is dropped.
The returned LockedOutput
instance implements Write
trait for writing data.
Trait Implementations§
Source§impl Write for Output
impl Write for Output
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Writes a buffer into this writer, returning how many bytes were written. Read more
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flushes this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
Source§fn write_all(&mut self, buf: &[u8]) -> Result<()>
fn write_all(&mut self, buf: &[u8]) -> Result<()>
Attempts to write an entire buffer into this writer. Read more
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl Freeze for Output
impl RefUnwindSafe for Output
impl Send for Output
impl Sync for Output
impl Unpin for Output
impl UnwindSafe for Output
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more