grit_pattern_matcher/
errors.rs

1use crate::{
2    context::QueryContext,
3    pattern::{get_file_name, State},
4};
5use grit_util::{
6    error::{GritPatternError, GritResult},
7    AnalysisLogBuilder, AnalysisLogs,
8};
9
10pub fn debug<'a, Q: QueryContext>(
11    analysis_logs: &mut AnalysisLogs,
12    state: &State<'a, Q>,
13    lang: &Q::Language<'a>,
14    message: &str,
15) -> GritResult<()> {
16    let mut builder = AnalysisLogBuilder::default();
17    builder.level(501_u16);
18    builder.message(message);
19
20    if let Ok(file) = get_file_name(state, lang) {
21        builder.file(file);
22    }
23
24    let log = builder.build();
25    match log {
26        Ok(log) => analysis_logs.push(log),
27        Err(err) => return Err(GritPatternError::Builder(err.to_string())),
28    }
29    Ok(())
30}
31
32pub fn warning<'a, Q: QueryContext>(
33    analysis_logs: &mut AnalysisLogs,
34    state: &State<'a, Q>,
35    lang: &Q::Language<'a>,
36    message: &str,
37) -> GritResult<()> {
38    let mut builder = AnalysisLogBuilder::default();
39    builder.level(301_u16);
40    builder.message(message);
41
42    if let Ok(file) = get_file_name(state, lang) {
43        builder.file(file);
44    }
45
46    let log = builder.build();
47    match log {
48        Ok(log) => analysis_logs.push(log),
49        Err(err) => return Err(GritPatternError::Builder(err.to_string())),
50    }
51    Ok(())
52}