use std::error::Error;
use std::fmt;
use std::ops::Deref;
#[derive(Debug)]
pub struct Faults(Vec<String>);
impl Deref for Faults {
type Target = [String];
fn deref(&self) -> &[String] {
&self.0
}
}
impl fmt::Display for Faults {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_str(&self.0.join("\n"))
}
}
impl Error for Faults {}
impl From<Vec<String>> for Faults {
fn from(faults: Vec<String>) -> Faults {
Faults(faults)
}
}
impl From<String> for Faults {
fn from(fault: String) -> Faults {
Faults(vec![fault])
}
}