Crate baml_macros

Crate baml_macros 

Source
Expand description

Derive macros for BAML types.

This crate provides #[derive(BamlEncode)] and #[derive(BamlDecode)] macros for automatically implementing serialization to/from BAML’s protobuf format.

§Usage

use baml::{BamlEncode, BamlDecode};

#[derive(BamlEncode, BamlDecode)]
#[baml(name = "Person")]  // Optional: specify BAML type name if different from Rust name
struct Person {
    name: String,
    #[baml(name = "years_old")]  // Optional: rename field
    age: i64,
    #[baml(skip)]  // Optional: skip field (only for encode)
    internal_id: String,
}

#[derive(BamlEncode, BamlDecode)]
#[baml(name = "Color")]
enum Color {
    Red,
    #[baml(name = "GREEN")]  // Optional: rename variant
    Green,
    Blue,
}

Derive Macros§

BamlDecode
Derive macro for BamlDecode trait.
BamlEncode
Derive macro for BamlEncode trait.