mod artifacts;
mod common;
mod json;
mod junit;
mod ndjson;
mod text;

#[cfg(test)]
mod tests;

#[derive(Debug, Clone, Copy)]
pub struct BodyReportOptions {
    pub include_body: bool,
    pub max_body_chars: Option<usize>,
}

impl Default for BodyReportOptions {
    fn default() -> Self {
        Self {
            include_body: true,
            max_body_chars: None,
        }
    }
}

pub use json::{hen_error_json, run_outcome_json, verification_result_json};
pub use junit::{hen_error_junit, run_outcome_junit, verification_result_junit};
pub use ndjson::{hen_error_ndjson, run_outcome_ndjson, verification_result_ndjson};

#[cfg(test)]
pub(crate) use artifacts::run_record_json;