1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
use ;
use cratebytes;
/// One execution. The `params` of `exec`.
///
/// Only a command and a time bound: where it runs is the session's, what it runs with is
/// the executor's. It takes no stdin: stage input with a [`WriteCall`](super::WriteCall)
/// beforehand and collect output files with a [`ReadCall`](super::ReadCall) after.
/// A whole execution: everything it wrote, and how it ended. The `result` of `exec`.
///
/// An execution with no result (killed at its timeout, never started) is an `error` with
/// a code instead (see [`Error`](crate::protocol::Error)), since an exit code (e.g.
/// 126/127) could be forged by `exit()`.
///
/// Sent unwrapped, so later additions are new members, which older peers ignore.
///
/// Whole, never streamed: the caller is an agent that cannot act on partial output before
/// its next inference, so streaming would buy only a second shape and code path.
///
/// The session's current directory is not reported, even if the command moved it: a
/// result describes the command, not the machine. Run `pwd` to ask.