use super::LogResult;
use super::errors::RuntimeError;

use std::io::Write;

/// Write the given log result to the given stream, using ANSI colors.
pub fn colored<W: Write>(mut f: W, item: &LogResult) -> Result<(), RuntimeError> {
    use colored::Colorize;
    writeln!(f, "{}: {:?}", "File".green(), item.log_file)?;
    writeln!(
        f,
        "{}: {} - {}: {}",
        "Date".green(),
        item.time,
        "Boss".green(),
        item.boss_name
    )?;
    for player in &item.players {
        writeln!(
            f,
            "  {:2} {:20} {:19} {}",
            player.subgroup,
            player.account_name.yellow(),
            player.character_name.cyan(),
            player.profession
        )?;
    }
    writeln!(f)?;
    Ok(())
}