pub struct ExecutionResult {
pub stdout: String,
pub stderr: String,
pub exit: Option<i32>,
pub final_value: Option<String>,
pub timed_out: bool,
}Expand description
The normalized outcome of running learner code to completion or timeout.
The observable channels are kept in distinct fields rather than one merged
buffer (§1.2): a later grading prompt reads stdout and stderr
independently and must never see one bleed into the other. An
ExecutionResult only ever represents a process that actually ran — a
failure to launch the interpreter is a RunnerError, never a value here.
Fields§
§stdout: StringEverything the program wrote to standard output.
stderr: StringEverything the program wrote to standard error.
exit: Option<i32>The process exit code, or None when it was terminated by a signal
(e.g. killed on timeout).
final_value: Option<String>The final evaluated expression’s value, reserved for the grading prompt.
None until its producer lands with grading (Slice 9, ADR-0005).
timed_out: boolWhether the run was killed for exceeding its Timeout.
Trait Implementations§
Source§impl Clone for ExecutionResult
impl Clone for ExecutionResult
Source§fn clone(&self) -> ExecutionResult
fn clone(&self) -> ExecutionResult
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExecutionResult
impl Debug for ExecutionResult
Source§impl PartialEq for ExecutionResult
impl PartialEq for ExecutionResult
impl Eq for ExecutionResult
impl StructuralPartialEq for ExecutionResult
Auto Trait Implementations§
impl Freeze for ExecutionResult
impl RefUnwindSafe for ExecutionResult
impl Send for ExecutionResult
impl Sync for ExecutionResult
impl Unpin for ExecutionResult
impl UnwindSafe for ExecutionResult
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.