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;