#metadata #struct #macro #elementary #system

metadata_macro

Rust macros for a very elementary metadata-like system in structs and tuple structs

3 releases

Uses new Rust 2024

0.1.2 Nov 26, 2025
0.1.1 Nov 26, 2025
0.1.0 Nov 26, 2025

#1527 in Rust patterns

LGPL-3.0-only

13KB
141 lines

Metadata Macro

Rust macros for a very elementary metadata-like system in structs and tuple structs.

Crates.io Version docs.rs

Examples

This example declares a private main struct with two fields and a private metadata struct to hold the multilingual description of the fields:

use metadata_macro::metadata;

metadata!({
        #[derive(Default, PartialEq, Debug)]
        struct YourStruct {
            field_a: bool,
            field_b: usize,
        }
    },
    #[derive(PartialEq, Debug)] struct YourStructDescription: &'static str,
);

impl Default for YourStructDescription {
    fn default() -> Self {
        Self {
            field_a: "Describes field_a",
            field_b: "Describes field_b",
        }
    }
}

impl YourStructDescription {
    fn i18n_some_language() -> Self {
        Self {
            field_a: "Describes field_a in other language",
            field_b: "Describes field_b in other language",
        }
    }
}

Dependencies

~230KB