1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use serde::Serialize;
use std::collections::HashMap;

#[derive(Clone, Debug, Serialize, PartialEq)]
pub enum ValidationErrorLevel {
    Warning,
    Error,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct ValidationError {
    pub key: String,
    pub level: ValidationErrorLevel,
    pub arguments: Option<HashMap<String, String>>,
}

impl ValidationError {
    pub fn warning(key: String, arguments: Option<HashMap<String, String>>) -> ValidationError {
        return ValidationError {
            key: key,
            level: ValidationErrorLevel::Warning,
            arguments: arguments,
        };
    }
    pub fn error(key: String, arguments: Option<HashMap<String, String>>) -> ValidationError {
        return ValidationError {
            key: key,
            level: ValidationErrorLevel::Error,
            arguments: arguments,
        };
    }
}

pub static VALIDATION_ERROR_REQUIRED: &str = "REQUIRED";