icydb_core/visitor/
sanitize.rs

1use crate::{
2    traits::Visitable,
3    visitor::{VisitorContext, VisitorMut},
4};
5
6///
7/// SanitizeVisitor
8/// Walks a tree and applies sanitization at each node.
9///
10
11#[derive(Debug, Default)]
12pub struct SanitizeVisitor;
13
14impl SanitizeVisitor {
15    #[must_use]
16    pub const fn new() -> Self {
17        Self
18    }
19}
20
21impl VisitorMut for SanitizeVisitor {
22    fn enter_mut(&mut self, node: &mut dyn Visitable, ctx: &mut dyn VisitorContext) {
23        node.sanitize_self(ctx);
24        node.sanitize_custom(ctx);
25    }
26
27    fn exit_mut(&mut self, _: &mut dyn Visitable, _: &mut dyn VisitorContext) {}
28}