versatiles_derive

Crates.ioversatiles_derive
lib.rsversatiles_derive
version3.4.0
created_at2024-05-27 12:00:11.41499+00
updated_at2026-01-23 14:40:17.341825+00
descriptionA toolbox for converting, checking and serving map tiles in various formats.
homepagehttps://versatiles.org
repositoryhttps://github.com/versatiles-org/versatiles-rs
max_upload_size
id1253309
size42,355
Michael Kreil (MichaelKreil)

documentation

README

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.

Commit count: 2978

cargo fmt