#[non_exhaustive]pub struct Vipe { /* private fields */ }Expand description
Runtime engine for one vipe invocation. Constructed via VipeBuilder.
Implementations§
Source§impl Vipe
impl Vipe
Sourcepub fn run<R: Read, W: Write>(
&mut self,
reader: R,
writer: W,
) -> Result<(), Error>
pub fn run<R: Read, W: Write>( &mut self, reader: R, writer: W, ) -> Result<(), Error>
Drain reader to a tempfile, spawn the editor against it, then write
the post-edit tempfile bytes to writer.
On non-zero editor exit, writer is NOT touched and the call returns
Err(Error::EditorNonZeroExit(code)) with the already-clamped code
(Unix 1–255 verbatim; Windows 1–254 verbatim, else clamped to 1).
Writer-untouched invariant: writer receives zero bytes (and zero
flush() calls) on every error path — EditorNonZeroExit,
TempFileDeleted, NoControllingTty, InvalidEditorCommand,
EditorNotFound, and any underlying Io error during the
drain/spawn/read phases. Only the final successful read-and-write step
touches writer. See FR-029 for the formal contract.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Vipe
impl RefUnwindSafe for Vipe
impl Send for Vipe
impl Sync for Vipe
impl Unpin for Vipe
impl UnsafeUnpin for Vipe
impl UnwindSafe for Vipe
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