| Crates.io | nitrite_derive |
| lib.rs | nitrite_derive |
| version | 0.1.0 |
| created_at | 2025-12-16 19:45:38.94767+00 |
| updated_at | 2025-12-16 19:45:38.94767+00 |
| description | Derive macros for the nitrite crate |
| homepage | |
| repository | https://github.com/nitrite/nitrite-rust |
| max_upload_size | |
| id | 1988522 |
| size | 32,822 |
Procedural macros for Nitrite database entity definitions.
#[derive(Convertible)]Enables automatic conversion between Rust structs and Nitrite documents.
use nitrite_derive::Convertible;
#[derive(Convertible)]
pub struct User {
name: String,
age: i32,
}
#[derive(NitriteEntity)]Defines a Nitrite entity with optional ID configuration and indexes.
use nitrite_derive::NitriteEntity;
#[derive(NitriteEntity, Default)]
pub struct Book {
id: i32,
name: String,
}
#[derive(NitriteEntity, Default)]
#[entity(name = "MyBook")]
pub struct Book {
id: i32,
name: String,
}
#[derive(NitriteEntity, Default)]
#[entity(id(field = "id"))]
pub struct Book {
id: i32,
name: String,
}
use nitrite_derive::{Convertible, NitriteEntity};
#[derive(NitriteEntity, Default)]
#[entity(id(field = "book_id", embedded_fields = "author, isbn"))]
pub struct Book {
book_id: BookId,
name: String,
}
#[derive(Default, Convertible)]
pub struct BookId {
author: String,
isbn: String,
}
#[derive(NitriteEntity, Default)]
#[entity(
index(type = "unique", fields = "name"),
index(type = "non-unique", fields = "name, publisher")
)]
pub struct Book {
name: String,
publisher: String,
}
Use NitriteId for auto-generated unique identifiers:
use nitrite::collection::NitriteId;
use nitrite_derive::NitriteEntity;
#[derive(NitriteEntity, Default)]
#[entity(id(field = "id"))]
pub struct Book {
id: NitriteId,
name: String,
}
Apache License 2.0