AkurAI Build
Menu

Public repository / master

AkurAI-Framework / crates/schema/src/lib.rs

Latest change baca1a74b0ca9dcd770206285f8e51230b34d130 - feat(schema): add akurai-schema crate — JSON-shape validator for tool-UI matching by Ólafur Búi Ólafsson

//! AkurAI-Framework Schema — pure `std`, zero external dependencies.
//!
//! A lightweight JSON-shape validator used to match AI tool payloads to UI
//! components. Define a [`Schema`] in Rust (or parse one from a JSON
//! description) and call [`Schema::validate`] to collect precise path+message
//! errors, or [`Schema::matches`] for a quick boolean check.
//!
//! # Quick start
//!
//! ```
//! use akurai_schema::{Schema, FieldType};
//!
//! let schema = Schema::object(&[
//!     ("name",  FieldType::String, true),
//!     ("count", FieldType::Int,    true),
//!     ("label", FieldType::String, false),
//! ]);
//!
//! let value = akurai_json::parse(r#"{"name":"widget","count":3}"#).unwrap();
//! assert!(schema.matches(&value));
//! ```

#![forbid(unsafe_code)]

mod error;
mod field_type;
mod from_json;
mod schema;

pub use error::SchemaError;
pub use field_type::FieldType;
pub use schema::Schema;