Module data

Module data 

Source
Expand description

Ergonomic data creation utilities.

This module provides multiple ways to create data for insert/update operations, from simple struct-based approaches to flexible builders.

§Approaches

// Generated struct with required/optional fields
let user = client.user().create(UserCreate {
    email: "bob@example.com".into(),
    name: Some("Bob".into()),
    ..Default::default()
}).exec().await?;

§2. Builder Pattern (For complex creates with relations)

let user = client.user()
    .create_with(|b| b
        .email("bob@example.com")
        .name("Bob")
        .posts(vec![
            PostCreate { title: "Hello".into(), ..Default::default() }
        ])
    )
    .exec().await?;

§3. Macro (Ultra-concise)

let user = client.user().create(data! {
    email: "bob@example.com",
    name: "Bob",
}).exec().await?;

§4. From tuples (Quick and dirty)

// For models with few required fields
let user = client.user().create(("bob@example.com", "Bob")).exec().await?;

Structs§

BatchCreate
Batch create helper for creating multiple records.
ConnectData
Data for connecting to an existing record.
DataBuilder
A flexible data builder for create/update operations.

Enums§

FieldValue
A field value that can be set in create/update operations.

Traits§

CreateData
Trait for types that can be used as create data.
IntoData
Helper trait for converting to DataBuilder.
TypedCreateBuilder
Builder for creating records with a fluent API.
TypedUpdateBuilder
Builder for updating records with a fluent API.
UpdateData
Trait for types that can be used as update data.