use serde::{Deserialize, Serialize};
use crate::core::position::Position;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Diagnostic {
pub filename: Option<String>,
pub start: Position,
pub end: Position,
pub code: String,
pub message: String,
}
impl Diagnostic {
pub fn new<S: Into<String>>(
filename: Option<S>,
start: Position,
end: Position,
code: String,
message: String,
) -> Self {
Self {
filename: filename.map(Into::into),
start,
end,
code,
message,
}
}
}