mlx_rs::macros

Derive Macro ModuleParameters

Source
#[derive(ModuleParameters)]
{
    // Attributes available to this derive:
    #[module]
    #[param]
}
Expand description

Derive the ModuleParameters trait for a struct. Mark a field with #[param] attribute to include it in the parameters. The field type must implement the mlx_rs::module::Parameter trait.

§Example

use mlx_macros::ModuleParameters;
use mlx_rs::module::{ModuleParameters, Param};

#[derive(ModuleParameters)]
struct Example {
    #[param]
    regular: Param<Array>,

    #[param]
    optional: Param<Option<Array>>,

    #[param]
    nested: Inner,

    #[param]
    vec_nested: Vec<Inner>,

    #[param]
    trait_object: Box<dyn Module>,

    #[param]
    trait_object_vec: Vec<Box<dyn Module>>,
}

#[derive(ModuleParameters)]
struct Inner {
    #[param]
    a: Param<Array>,
}