nextest_runner/
run_mode.rs

1// Copyright (c) The nextest Contributors
2// SPDX-License-Identifier: MIT OR Apache-2.0
3
4//! Run mode for nextest.
5
6use serde::{Deserialize, Serialize};
7use std::fmt;
8
9/// The run mode for nextest.
10///
11/// This is used to distinguish between running tests and benchmarks.
12#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Eq, Serialize)]
13#[serde(rename_all = "kebab-case")]
14#[cfg_attr(test, derive(test_strategy::Arbitrary))]
15pub enum NextestRunMode {
16    /// Run tests.
17    #[default]
18    Test,
19    /// Run benchmarks.
20    Benchmark,
21}
22
23impl NextestRunMode {
24    /// Returns true if this is benchmark mode.
25    pub fn is_benchmark(self) -> bool {
26        matches!(self, Self::Benchmark)
27    }
28}
29
30impl fmt::Display for NextestRunMode {
31    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
32        match self {
33            Self::Test => write!(f, "test"),
34            Self::Benchmark => write!(f, "benchmark"),
35        }
36    }
37}