ito_core/validate/
issue.rs1use super::{LEVEL_ERROR, LEVEL_INFO, LEVEL_WARNING, ValidationIssue, ValidationLevel};
7
8pub fn issue(
10 level: ValidationLevel,
11 path: impl AsRef<str>,
12 message: impl Into<String>,
13) -> ValidationIssue {
14 ValidationIssue {
15 level: level.to_string(),
16 path: path.as_ref().to_string(),
17 message: message.into(),
18 line: None,
19 column: None,
20 metadata: None,
21 }
22}
23
24pub fn error(path: impl AsRef<str>, message: impl Into<String>) -> ValidationIssue {
26 issue(LEVEL_ERROR, path, message)
27}
28
29pub fn warning(path: impl AsRef<str>, message: impl Into<String>) -> ValidationIssue {
31 issue(LEVEL_WARNING, path, message)
32}
33
34pub fn info(path: impl AsRef<str>, message: impl Into<String>) -> ValidationIssue {
36 issue(LEVEL_INFO, path, message)
37}
38
39pub fn with_line(mut i: ValidationIssue, line: u32) -> ValidationIssue {
41 i.line = Some(line);
42 i
43}
44
45pub fn with_loc(mut i: ValidationIssue, line: u32, column: u32) -> ValidationIssue {
47 i.line = Some(line);
48 i.column = Some(column);
49 i
50}
51
52pub fn with_metadata(mut i: ValidationIssue, metadata: serde_json::Value) -> ValidationIssue {
54 i.metadata = Some(metadata);
55 i
56}