burn_train/renderer/
mod.rs

1#[cfg(feature = "tui")]
2use std::io::IsTerminal;
3
4mod base;
5pub use base::*;
6
7pub(crate) mod cli;
8
9/// The tui renderer
10#[cfg(feature = "tui")]
11pub mod tui;
12use crate::Interrupter;
13
14/// Return the default metrics renderer.
15///
16/// This can be either:
17///   - `TuiMetricsRenderer`, when the `tui` feature is enabled and `stdout` is
18///     a terminal, or
19///   - `CliMetricsRenderer`, when the `tui` feature is not enabled, or `stdout`
20///     is not a terminal.
21#[allow(unused_variables)]
22pub(crate) fn default_renderer(
23    interuptor: Interrupter,
24    checkpoint: Option<usize>,
25) -> Box<dyn MetricsRenderer> {
26    #[cfg(feature = "tui")]
27    if std::io::stdout().is_terminal() {
28        return Box::new(tui::TuiMetricsRenderer::new(interuptor, checkpoint));
29    }
30
31    Box::new(cli::CliMetricsRenderer::new())
32}