Derive Macro AiJsonTemplate

Source
#[derive(AiJsonTemplate)]
Expand description

This new implementation supports:

  • Named structs (as before),
  • Enums with any mix of:
    • Unit variants,
    • Struct variants (with named fields),
    • Tuple variants (with unnamed fields).

It generates a template describing each variant and its fields. Where those fields are themselves AiJsonTemplate, the macro nests that template, just like with structs.

Please integrate this entire function as-is (and make sure the other helper modules like gather_doc_comments and classify_field_type are still in scope).