Skip to main content

rom_core/
lib.rs

1//! ROM core - monitoring engine, state management, display, and build cache
2pub mod cache;
3pub mod display;
4pub mod error;
5pub mod icons;
6pub mod monitor;
7pub mod state;
8pub mod types;
9pub mod update;
10
11use std::io::{BufRead, Write};
12
13pub use error::{Result, RomError};
14pub use monitor::Monitor;
15pub use types::{Config, InputMode};
16
17/// Monitor a stream of nix output and display enhanced progress information.
18///
19/// # Arguments
20///
21/// * `config` - Configuration for the monitor
22/// * `reader` - Input stream containing nix output
23/// * `writer` - Output stream for enhanced display
24///
25/// # Errors
26///
27/// Returns an error if monitoring fails due to I/O issues or parsing errors.
28pub fn monitor_stream<R, W>(config: Config, reader: R, writer: W) -> Result<()>
29where
30  R: BufRead,
31  W: Write,
32{
33  let mut monitor = Monitor::new(config, writer)?;
34  monitor.process_stream(reader)
35}
36
37/// Create a new monitor instance with the given configuration.
38pub fn create_monitor<W: Write>(
39  config: Config,
40  writer: W,
41) -> Result<Monitor<W>> {
42  Monitor::new(config, writer)
43}