Skip to main content

relux_runtime/
runtime_context.rs

1use std::path::Path;
2use std::sync::Arc;
3use std::time::Instant;
4
5use crate::cancel::CancelToken;
6use crate::observe::structured::StructuredLogBuilder;
7use relux_core::pure::LayeredEnv;
8use relux_ir::IrTimeout;
9use relux_ir::Tables;
10
11#[derive(Clone, Debug)]
12pub struct ShellConfig {
13    pub command: Arc<str>,
14    pub prompt: Arc<str>,
15    pub default_timeout: IrTimeout,
16}
17
18#[derive(Clone)]
19pub struct RuntimeContext {
20    pub log: StructuredLogBuilder,
21    pub shell: ShellConfig,
22    pub log_dir: Arc<Path>,
23    pub tables: Tables,
24    pub env: Arc<LayeredEnv>,
25    pub cancel: CancelToken,
26    pub test_start: Instant,
27    pub flaky_timeout_multiplier: f64,
28}