anda_db_derive
A Rust procedural macro crate that provides derive macros for AndaDB schema types.
Features
FieldTypedderive macro: Automatically generates afield_type()function for structs that maps Rust types to AndaDB schema field types.
Installation
Add this to your Cargo.toml:
[]
= "0.2"
Usage
FieldTyped Derive Macro
The FieldTyped derive macro analyzes struct fields and their types, mapping them to the appropriate FieldType enum variants. It supports common Rust types and handles Option<T> wrappers.
Supported Type Mappings
| Rust Type | AndaDB FieldType |
|---|---|
String, &str |
FieldType::Text |
bool |
FieldType::Bool |
i8, i16, i32, i64, isize |
FieldType::I64 |
u8, u16, u32, u64, usize |
FieldType::U64 |
f32 |
FieldType::F32 |
f64 |
FieldType::F64 |
half::bf16 |
FieldType::Bf16 |
Vec<u8>, [u8], ByteArray, ByteBuf |
FieldType::Bytes |
Vec<T> |
FieldType::Array |
Option<T> |
FieldType::Option |
HashMap<String, T>, BTreeMap<String, T> |
FieldType::Map |
| Custom structs | Nested FieldType::Map |
Attributes
field_type = "TypeName": Override the inferred type with a specific FieldTypeserde(rename = "field_name"): Use the renamed field in the generated schema
Example
use ;
use ;
use HashMap;
// Define a struct with the FieldTyped derive macro
// Define a nested struct
The generated field_type() method returns a FieldType::Map containing the type information for each field, which can be used for schema validation, serialization, or other purposes in AndaDB.
License
Copyright © 2025 LDC Labs.
ldclabs/anda-db is licensed under the MIT License. See LICENSE for the full license text.