laminar-derive 0.1.1

Derive macros for LaminarDB Record and FromRecordBatch traits
Documentation

Derive macros for LaminarDB.

Provides #[derive(Record)], #[derive(FromRecordBatch)], and #[derive(ConnectorConfig)] to eliminate boilerplate.

Example

use laminar_derive::{Record, FromRecordBatch, ConnectorConfig};

#[derive(Record)]
struct Trade {
    symbol: String,
    price: f64,
    #[event_time]
    timestamp: i64,
}

#[derive(FromRecordBatch)]
struct OhlcBar {
    symbol: String,
    open: f64,
    high: f64,
    low: f64,
    close: f64,
}

#[derive(ConnectorConfig)]
struct MySourceConfig {
    #[config(key = "bootstrap.servers", required)]
    bootstrap_servers: String,

    #[config(key = "batch.size", default = "1000")]
    batch_size: usize,

    #[config(key = "timeout.ms", default = "30000", duration_ms)]
    timeout: std::time::Duration,

    #[config(key = "api.key", env = "MY_API_KEY")]
    api_key: Option<String>,
}