Files
brk/crates/brk_traversable_derive
2026-03-21 23:05:27 +01:00
..
2026-03-21 23:05:27 +01:00
2026-01-07 01:16:37 +01:00
2026-01-23 00:25:11 +01:00
2025-12-18 23:05:43 +01:00

brk_traversable_derive

Proc-macro for deriving the Traversable trait on data structures.

What It Enables

Automatically generate tree traversal and export iteration for structs, eliminating boilerplate when working with hierarchical data that needs serialization or inspection.

Key Features

  • Automatic tree building: Converts struct fields into TreeNode::Branch hierarchies
  • Export iteration: Generates iter_any_exportable() to walk all exportable vectors
  • Field attributes: #[traversable(skip)] to exclude fields, #[traversable(flatten)] to merge nested structures
  • Option support: Gracefully handles Option<T> fields
  • Generic-aware: Properly bounds generic parameters with Traversable + Send + Sync

Core API

#[derive(Traversable)]
struct MyData {
    pub metrics: MetricsCollection,
    #[traversable(flatten)]
    pub nested: NestedData,
    #[traversable(skip)]
    internal: Cache,
}

Generated Methods

  • to_tree_node(&self) -> TreeNode - Build navigable tree structure
  • iter_any_exportable(&self) -> impl Iterator<Item = &dyn AnyExportableVec> - Iterate all exportable vectors