1#[derive(Clone, PartialEq, Eq)]
5pub(crate) enum BenchMode {
6    Auto,
7    Single,
8}
9
10#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
12pub enum ShouldPanic {
13    No,
14    Yes,
15    YesWithMessage(&'static str),
16}
17
18#[derive(Copy, Clone, Default, Debug)]
20pub enum ColorConfig {
21    #[default]
22    AutoColor,
23    AlwaysColor,
24    NeverColor,
25}
26
27#[derive(Copy, Clone, Debug, Default, PartialEq, Eq)]
29pub enum OutputFormat {
30    Pretty,
32    #[default]
34    Terse,
35    Json,
37    Junit,
39}
40
41#[derive(Copy, Clone, Debug, PartialEq, Eq)]
43pub enum RunIgnored {
44    Yes,
45    No,
46    Only,
48}
49
50#[derive(Clone, Copy)]
51pub enum RunStrategy {
52    InProcess,
55
56    SpawnPrimary,
60}
61
62#[derive(Copy, Clone, Debug)]
65pub struct Options {
66    pub display_output: bool,
67    pub panic_abort: bool,
68}
69
70impl Options {
71    pub fn new() -> Options {
72        Options { display_output: false, panic_abort: false }
73    }
74
75    pub fn display_output(mut self, display_output: bool) -> Options {
76        self.display_output = display_output;
77        self
78    }
79
80    pub fn panic_abort(mut self, panic_abort: bool) -> Options {
81        self.panic_abort = panic_abort;
82        self
83    }
84}