cargo_nextest/
helpers.rs

1// Copyright (c) The nextest Contributors
2// SPDX-License-Identifier: MIT OR Apache-2.0
3
4use crate::output::StderrStyles;
5
6// From https://github.com/tokio-rs/tracing/issues/2730#issuecomment-1943022805
7macro_rules! dyn_event {
8    ($lvl:ident, $($arg:tt)+) => {
9        match $lvl {
10            ::tracing::Level::TRACE => ::tracing::trace!($($arg)+),
11            ::tracing::Level::DEBUG => ::tracing::debug!($($arg)+),
12            ::tracing::Level::INFO => ::tracing::info!($($arg)+),
13            ::tracing::Level::WARN => ::tracing::warn!($($arg)+),
14            ::tracing::Level::ERROR => ::tracing::error!($($arg)+),
15        }
16    };
17}
18
19#[cfg(feature = "self-update")]
20pub(crate) fn log_needs_update(level: tracing::Level, extra: &str, styles: &StderrStyles) {
21    use owo_colors::OwoColorize;
22
23    dyn_event!(
24        level,
25        "update nextest with {}{}",
26        "cargo nextest self update".style(styles.bold),
27        extra,
28    );
29}
30
31#[cfg(not(feature = "self-update"))]
32pub(crate) fn log_needs_update(level: tracing::Level, extra: &str, _styles: &StderrStyles) {
33    dyn_event!(level, "update nextest via your package manager{}", extra);
34}
35
36pub(crate) const BYPASS_VERSION_TEXT: &str = ", or bypass check with --override-version-check";