use crate::models::position::UnistPosition;
#[derive(Clone, Debug, Default)]
pub struct File {
pub path: Option<String>,
pub value: Option<String>,
pub messages: Vec<Message>,
pub data: serde_json::Map<String, serde_json::Value>,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Message {
pub reason: String,
pub source: Option<String>,
pub rule: Option<String>,
pub place: Option<UnistPosition>,
}
impl File {
pub fn new() -> Self {
Self::default()
}
pub fn warn(&mut self, reason: impl Into<String>, rule: Option<&str>) {
self.messages.push(Message {
reason: reason.into(),
source: None,
rule: rule.map(str::to_string),
place: None,
});
}
}