mod aggregators;
mod boolean;
mod bytes;
mod map_struct;
mod null;
mod number;
mod sequence;
mod shared;
mod string;
pub use aggregators::Aggregators;
pub use boolean::BooleanContext;
pub use bytes::BytesContext;
pub use map_struct::MapStructContext;
pub use null::NullContext;
pub use number::NumberContext;
pub use sequence::SequenceContext;
pub use shared::{Counter, CountingSet};
pub use string::{SemanticExtractor, StringContext, SuspiciousStrings};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct Context {
pub null: NullContext,
pub boolean: BooleanContext,
pub integer: NumberContext<i128>,
pub float: NumberContext<f64>,
pub string: StringContext,
pub bytes: BytesContext,
pub sequence: SequenceContext,
pub map_struct: MapStructContext,
}
impl Context {
pub fn for_null(&self) -> NullContext {
self.null.clone()
}
pub fn for_boolean(&self) -> BooleanContext {
self.boolean.clone()
}
pub fn for_integer(&self) -> NumberContext<i128> {
self.integer.clone()
}
pub fn for_float(&self) -> NumberContext<f64> {
self.float.clone()
}
pub fn for_string(&self) -> StringContext {
self.string.clone()
}
pub fn for_bytes(&self) -> BytesContext {
self.bytes.clone()
}
pub fn for_sequence(&self) -> SequenceContext {
self.sequence.clone()
}
pub fn for_map_struct(&self) -> MapStructContext {
self.map_struct.clone()
}
}