Skip to main content

icydb_model/base/validator/
bytes.rs

1//! Module: base::validator::bytes
2//!
3//! Responsibility: base validator definitions.
4//! Does not own: normalization policy, persistence, or schema mutation semantics.
5//! Boundary: reports typed visitor issues for facade schema values.
6
7use crate::{prelude::*, visitor::Validator};
8
9///
10/// Utf8
11///
12/// Validates that a byte slice is well-formed UTF-8.
13/// Emits a single issue when decoding fails.
14///
15
16#[validator]
17pub struct Utf8;
18
19impl Validator<[u8]> for Utf8 {
20    fn validate(&self, bytes: &[u8], ctx: &mut dyn VisitorContext) {
21        if std::str::from_utf8(bytes).is_err() {
22            ctx.issue("bytes must be valid UTF-8");
23        }
24    }
25}