mod console;
mod multi;
#[cfg(feature = "storage-query")]
mod query_format;
#[cfg(feature = "storage")]
mod storage;
pub use console::ConsoleOutput;
pub use multi::MultiOutput;
#[cfg(feature = "storage-query")]
pub use query_format::{format_csv, format_json, format_schema, format_table, OutputFormat};
#[cfg(feature = "storage")]
pub use storage::{StorageOutput, StorageSummary};
use crate::derive::DerivedKey;
use crate::matcher::MatchInfo;
use anyhow::Result;
pub trait Output: Send + Sync {
fn key(&self, source: &str, transform: &str, derived: &DerivedKey) -> Result<()>;
fn hit(
&self,
source: &str,
transform: &str,
derived: &DerivedKey,
match_info: &MatchInfo,
) -> Result<()>;
fn flush(&self) -> Result<()>;
}