use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct PredicateOptions {
#[serde(default = "default_case_sensitive")]
pub case_sensitive: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub except: Option<String>,
#[serde(default, skip_serializing_if = "is_false")]
pub not: bool,
}
fn is_false(b: &bool) -> bool {
!*b
}
impl Default for PredicateOptions {
fn default() -> Self {
Self {
case_sensitive: true, except: None,
not: false,
}
}
}
fn default_case_sensitive() -> bool {
true }
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_predicate_options_default() {
let options = PredicateOptions::default();
assert!(options.case_sensitive); assert!(options.except.is_none());
assert!(!options.not);
}
}