Skip to main content

qubit_progress/reporter/impls/
stdout_progress_reporter.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2025 - 2026 Haixing Hu.
4 *
5 *    SPDX-License-Identifier: Apache-2.0
6 *
7 *    Licensed under the Apache License, Version 2.0.
8 *
9 ******************************************************************************/
10use crate::{
11    model::ProgressEvent,
12    reporter::{
13        ProgressReporter,
14        WriterProgressReporter,
15    },
16};
17
18/// Progress reporter that writes human-readable events to stdout.
19#[derive(Debug)]
20pub struct StdoutProgressReporter {
21    /// Writer-backed reporter targeting standard output.
22    inner: WriterProgressReporter<std::io::Stdout>,
23}
24
25impl StdoutProgressReporter {
26    /// Creates a reporter writing to standard output.
27    #[inline]
28    pub fn new() -> Self {
29        Self {
30            inner: WriterProgressReporter::from_writer(std::io::stdout()),
31        }
32    }
33}
34
35impl Default for StdoutProgressReporter {
36    #[inline]
37    fn default() -> Self {
38        Self::new()
39    }
40}
41
42impl ProgressReporter for StdoutProgressReporter {
43    #[inline]
44    fn report(&self, event: &ProgressEvent) {
45        self.inner.report(event);
46    }
47}