Skip to main content

ralph_workflow/json_parser/
printer.rs

1//! Printer abstraction for testable output.
2//!
3//! This module provides a trait-based abstraction for output destinations,
4//! allowing parsers to write to stdout, stderr, or test collectors without
5//! changing their core logic.
6
7use std::cell::RefCell;
8use std::io::{self, IsTerminal, Stdout};
9use std::rc::Rc;
10
11#[cfg(any(test, feature = "test-utils"))]
12use std::io::Stderr;
13
14// Trait and standard printers
15include!("printer/traits.rs");
16
17// Test printer (test-utils only)
18include!("printer/test_printer.rs");
19
20// Streaming test printer (test-utils only)
21include!("printer/streaming_printer.rs");
22
23// Virtual terminal (test-utils only)
24include!("printer/virtual_terminal.rs");
25
26// Tests
27include!("printer/tests.rs");