ProcessStreamCompletion
Owns the final process outcome and all transferred stream owners. Returned even after process/stream/admission failure so captured bytes remain inspectable. Movement/destruction invalidates aliases into these fields. No child, raw callback context or borrowed native buffer remains. Readonly access follows ordinary field mutability; concurrent mutation needs synchronization.
Module std.process
import std.process;Public declaration contracts and authored examples. A page can document several related symbols. Implementation bodies are excluded.
ProcessStreamCompletion
pub final class ProcessStreamCompletion<I, O, E> where I: Movable where O: Movable where E: MovableOwns the final process outcome and all transferred stream owners. Returned even after process/stream/admission failure so captured bytes remain inspectable. Movement/destruction invalidates aliases into these fields. No child, raw callback context or borrowed native buffer remains. Readonly access follows ordinary field mutability; concurrent mutation needs synchronization. I: Owned input stream representation. O: Owned stdout stream representation. E: Owned stderr stream representation.
ProcessStreamCompletion.Outcome
pub Outcome: Result<ProcessExit, ProcessStreamError>;Detached child result or original native/channel error.
ProcessStreamCompletion.Input
pub Input: I;Retained stdin owner with final read state.
ProcessStreamCompletion.Output
pub Output: O;Retained stdout owner including bytes delivered before failure.
ProcessStreamCompletion.Errors
pub Errors: E;Retained stderr owner independently of stdout.
ProcessStreamCompletion.init
pub init(mut Outcome: Result<ProcessExit, ProcessStreamError>, mut Input: I, mut Output: O, mut Errors: E)Adopts final streams without additional native work. Outcome: Detached execution/admission outcome. Input: Consumed stdin owner. Output: Consumed stdout owner. Errors: Consumed stderr owner.
ProcessStreamCompletion.init
pub init(Source: readonly Self&) = delete;Rejects implicit stream owner copies. Source: Existing completion.
ProcessStreamCompletion.init
pub init(Source: mut Self&&)Transfers final streams using their declared move operations. Source: Existing completion; aliases are invalidated.
ProcessStreamCompletion.operator
pub fn operator =(Source: readonly Self&) -> void = delete;Rejects implicit stream owner copies. Source: Existing completion. Return: No runtime result; this assignment is deleted and cannot be invoked.
ProcessStreamCompletion.operator
pub fn operator =(Source: mut Self&&) -> void
where I: MoveAssignable where O: MoveAssignable where E: MoveAssignableReplaces final streams when all three owners support move assignment. Pre: I, O and E satisfy MoveAssignable; move construction alone does not enable replacement. Source: Existing completion; nested self-move behavior applies. Return: No value after replacing the outcome and all three final stream owners.