Crate kizzasi_macros

Crate kizzasi_macros 

Source
Expand description

Procedural macros for Kizzasi AGSP.

This crate provides derive macros to simplify working with Kizzasi predictors and custom configurations.

§Derive Macros

§#[derive(KizzasiConfig)]

Automatically implements builder pattern and validation for custom configurations.

use kizzasi_macros::KizzasiConfig;

#[derive(KizzasiConfig)]
struct MyCustomConfig {
    #[config(default = 4096)]
    context_window: usize,

    #[config(validate = "validate_dim")]
    hidden_dim: usize,

    learning_rate: f64,
}

fn validate_dim(dim: &usize) -> Result<(), String> {
    if *dim > 0 && *dim % 64 == 0 {
        Ok(())
    } else {
        Err("Dimension must be positive and divisible by 64".into())
    }
}

§#[derive(Preset)]

Generates preset constructor functions for common configurations.

use kizzasi_macros::Preset;

#[derive(Preset)]
#[preset(name = "audio", context_window = 8192, hidden_dim = 256)]
#[preset(name = "video", context_window = 16384, hidden_dim = 512)]
struct ModelConfig {
    context_window: usize,
    hidden_dim: usize,
}

// Generated:
// impl ModelConfig {
//     pub fn audio_preset() -> Self { ... }
//     pub fn video_preset() -> Self { ... }
// }

Derive Macros§

Instrumented
Derive macro for metrics instrumentation.
KizzasiConfig
Derive macro for custom Kizzasi configurations.
Preset
Derive macro for generating preset constructors.