60 releases (26 stable)
Uses new Rust 2024
| new 3.6.1 | Feb 11, 2026 |
|---|---|
| 3.4.0 | Jan 23, 2026 |
| 3.0.1 | Dec 31, 2025 |
| 2.3.2-rc.1 | Dec 29, 2025 |
| 0.12.4 | Jul 22, 2024 |
#10 in #mbtiles
Used in 7 crates
(6 directly)
41KB
998 lines
versatiles_derive
Procedural macros for the VersaTiles ecosystem.
Overview
This crate provides derive macros and attribute macros used internally by VersaTiles for code generation and ergonomic error handling.
Provided Macros
#[derive(VPLDecode)]: Automatically generates decoding logic for VPL (VersaTiles Pipeline Language) data structures#[derive(ConfigDoc)]: Generates YAML configuration documentation from struct definitions#[context("...")]: Adds contextual error messages to functions returningResult
Usage
This crate is primarily for internal use within the VersaTiles project. If you're using VersaTiles as a library, you typically won't need to use this crate directly.
cargo add versatiles_derive
Or see crates.io/crates/versatiles_derive for version info and docs.rs/versatiles_derive for API documentation.
Example
use versatiles_derive::{VPLDecode, context};
use anyhow::Result;
#[derive(VPLDecode)]
struct MyConfig {
name: String,
value: u32,
}
#[context("failed to process data")]
fn process() -> Result<()> {
// Errors will include "failed to process data" context
Ok(())
}
API Documentation
For detailed API documentation and macro usage, see docs.rs/versatiles_derive.
Part of VersaTiles
This crate is part of the VersaTiles project.
License
MIT License - see LICENSE for details.
Dependencies
~120–495KB
~12K SLoC