///|
/// A machine-readable parse or render failure. Offsets use UTF-16 code units.
/// Runtime failures without a source span have offset=None.
pub struct Diagnostic {
phase : String
code : String
message : String
offset : Int?
template : String?
} derive(Debug, Eq, ToJson)
///|
fn parse_diagnostic(
code : String,
message : String,
offset : Int,
) -> Diagnostic {
{ phase: "parse", code, message, offset: Some(offset), template: None, }
}
///|
pub extend Diagnostic with Debug::{to_repr}
///|
pub extend Diagnostic with Eq::{equal, not_equal}
///|
pub extend Diagnostic with ToJson::{to_json}
///|
fn filter_diagnostic(code : String, message : String) -> Diagnostic {
{ phase: "render", code, message, offset: None, template: None, }
}