use crate::*;
pub trait Logger {
fn new() -> Self;
fn hollow(&self) -> Self;
fn crash<T>(&mut self) -> T { std::process::exit(1) }
fn error(&mut self, log: Log) -> ErrorResponse;
fn vital(&mut self, log: Log);
fn verbose(&mut self, log: Log);
fn ask(&self, origin: &str, prompt: &str) -> String {
use std::io::{self, Write};
let prompt = colour_format![blue("["), cyan(origin), blue("] "), cyan(prompt), blue(": ")];
let mut read_line = String::new();
print!("{prompt}");
let _ = io::stdout().flush();
let _ = io::stdin().read_line(&mut read_line);
read_line
}
}