use serde::Serialize;
use crate::errors::EvalMessage;
use crate::errors::EvalSeverity;
#[derive(Debug, Clone, Serialize)]
pub struct LintMessage {
path: String,
line: Option<usize>,
char: Option<usize>,
code: String,
severity: EvalSeverity,
name: String,
description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
original: Option<String>,
}
impl LintMessage {
pub fn new(x: EvalMessage) -> Self {
Self {
path: x.path,
line: x.span.map(|x| x.begin.line + 1),
char: x.span.map(|x| x.begin.column + 1),
code: "STARLARK".to_owned(),
severity: x.severity,
name: x.name,
description: Some(x.description),
original: x.original,
}
}
}