use crate::formatting::FormattingConfig;
use crate::priority::{UnifiedAnalysis, UnifiedAnalysisQueries};
use colored::*;
use std::fmt::Write;
use super::{recommendations, verbosity};
pub(super) fn format_default_with_verbosity(
analysis: &UnifiedAnalysis,
limit: usize,
verbosity: u8,
) -> String {
format_default_with_config(analysis, limit, verbosity, FormattingConfig::default())
}
pub(super) fn format_default_with_config(
analysis: &UnifiedAnalysis,
limit: usize,
verbosity: u8,
config: FormattingConfig,
) -> String {
recommendations::format_default_with_config(analysis, limit, verbosity, config)
}
#[allow(dead_code)]
pub(super) fn format_default(analysis: &UnifiedAnalysis, limit: usize) -> String {
format_default_with_verbosity(analysis, limit, 0)
}
#[allow(dead_code)]
pub(super) fn format_tail_with_verbosity(
analysis: &UnifiedAnalysis,
n: usize,
verbosity: u8,
) -> String {
format_tail_with_config(analysis, n, verbosity, FormattingConfig::default())
}
pub(super) fn format_tail_with_config(
analysis: &UnifiedAnalysis,
n: usize,
verbosity: u8,
config: FormattingConfig,
) -> String {
let mut output = String::new();
let version = env!("CARGO_PKG_VERSION");
let divider = "=".repeat(44);
writeln!(output, "{}", divider.bright_blue()).unwrap();
writeln!(
output,
" {}",
format!("Debtmap v{}", version).bright_white().bold()
)
.unwrap();
writeln!(output, "{}", divider.bright_blue()).unwrap();
writeln!(output).unwrap();
let tail_items = analysis.get_bottom_priorities(n);
let start_rank = (analysis.items.len() - tail_items.len()) + 1;
for (idx, item) in tail_items.iter().enumerate() {
verbosity::format_priority_item_with_config(
&mut output,
start_rank + idx,
item,
verbosity,
config,
analysis.has_coverage_data,
);
writeln!(output).unwrap();
}
output
}