//! OSIS (Object Storage with Integrated Services) derive macros.
//!
//! This module contains procedural macros for the OSIS framework:
//!
//! ## Schema Generation
//!
//! - [`include_oschema!`](oschema::impl_include_oschema) - Generate Rust types from a single `.oschema` file
//!
//! ## Serialization
//!
//! - [`#[derive(Otoml)]`](otoml::impl_otoml) - Add OTOML serialization methods to types

pub mod oschema;
pub mod otoml;

use proc_macro::TokenStream;

/// Implementation of `include_oschema!` macro.
///
/// See [`crate::include_oschema`] for full documentation.
pub fn impl_include_oschema(input: TokenStream) -> TokenStream {
    oschema::impl_include_oschema(input)
}

/// Implementation of `#[derive(Otoml)]` macro.
///
/// See [`crate::Otoml`] for full documentation.
pub fn impl_otoml(input: TokenStream) -> TokenStream {
    otoml::impl_otoml(input)
}
