Laminate › Getting Started

Getting Started

From zero to shaped data in four steps

1

Add to Cargo.toml

[dependencies]
laminate = { version = "0.1", features = ["full"] }

Feature flags: core (default), derive, streaming, providers, registry, schema, full (all of the above).

2

Parse and Extract

use laminate::FlexValue;

let data = FlexValue::from_json(r#"{"name": "Alice", "age": "30"}"#)?;
let name: String = data.extract("name")?;
let age: i64 = data.extract("age")?;  // "30" → 30
3

Shape into Structs

use laminate::Laminate;

#[derive(Laminate)]
struct User {
    name: String,
    #[laminate(coerce)]
    age: i64,
    #[laminate(default)]
    active: bool,
}

let result = User::shape_lenient(&json_value)?;
println!("User: {:?}, Diagnostics: {:?}", result.value, result.diagnostics);
4

Detect Types

use laminate::detect::guess_type;

for value in &column {
    let guesses = guess_type(value);
    println!("{}: {:?}", value, guesses[0].kind);
}

Next steps