From 5d2f51ab8593946a0f24db367a887a37258901d5 Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 3 Jun 2019 02:02:44 +0200 Subject: [WIP] rewrite output logic as a pipeline --- src/output/mod.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/output/mod.rs (limited to 'src/output/mod.rs') 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 = if opt.file_name_only { + Box::new(formats::FileOnly) + } else { + Box::new(formats::HumanReadable) + }; + + Pipeline::new(stream, formatter, aggregators::WriteThrough) +} -- cgit v1.2.3