#pmtiles #mbtiles #map-tile #tile-map

macro versatiles_derive

A toolbox for converting, checking and serving map tiles in various formats

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)

MIT license

41KB
998 lines

versatiles_derive

Procedural macros for the VersaTiles ecosystem.

Crates.io Documentation

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 returning Result

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