aboutsummaryrefslogtreecommitdiff
path: root/src/output/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/output/mod.rs')
-rw-r--r--src/output/mod.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/output/mod.rs b/src/output/mod.rs
new file mode 100644
index 0000000..dfb3ea8
--- /dev/null
+++ b/src/output/mod.rs
@@ -0,0 +1,26 @@
+use super::errors::RuntimeError;
+use super::{FightOutcome, LogResult, Opt};
+
+use std::io;
+
+pub mod formats;
+pub mod aggregators;
+pub mod pipeline;
+
+use self::formats::Format;
+use self::aggregators::Aggregator;
+pub use self::pipeline::Pipeline;
+
+
+/// Build an pipeline for the given command line options.
+pub fn build_pipeline(opt: &Opt) -> Pipeline {
+ let stream = io::stdout();
+
+ let formatter: Box<dyn Format> = if opt.file_name_only {
+ Box::new(formats::FileOnly)
+ } else {
+ Box::new(formats::HumanReadable)
+ };
+
+ Pipeline::new(stream, formatter, aggregators::WriteThrough)
+}