textlane_core/models/
file.rs1use crate::models::position::UnistPosition;
2
3#[derive(Clone, Debug, Default)]
5pub struct File {
6 pub path: Option<String>,
7 pub value: Option<String>,
9 pub messages: Vec<Message>,
10 pub data: serde_json::Map<String, serde_json::Value>,
12}
13
14#[derive(Clone, Debug, PartialEq, Eq)]
16pub struct Message {
17 pub reason: String,
18 pub source: Option<String>,
19 pub rule: Option<String>,
20 pub place: Option<UnistPosition>,
22}
23
24impl File {
25 pub fn new() -> Self {
26 Self::default()
27 }
28
29 pub fn warn(&mut self, reason: impl Into<String>, rule: Option<&str>) {
31 self.messages.push(Message {
32 reason: reason.into(),
33 source: None,
34 rule: rule.map(str::to_string),
35 place: None,
36 });
37 }
38}