optionable_codegen 0.1.0

proc_macro2 functions for the derive macro and codegen implementations in the `optionable_derive` crate to derive nested structs/enums with all subfields being optional (e.g. for patches or Kubernetes server side apply).
Documentation

optionable_codegen

The relevant main crate is optionable. The relevant docs can be found there.

Purpose

This code generation proc_macro2 code generation library serves two purposes:

  • Used by optionable_derive to implement the #[derive(Optionable)]-macro re-exported by optionable.
  • Used by the bin/codegen.rs crate to support generating Optionable-implementations for external packages. Due to the orphan rule the generated code has to be added to the Optionable-package (PRs welcome).

It has to be a separate crate from optionable_derive as the proc-macro crates can't export its non-macro functions (even the proc_macro2 ones) for the usage by the codegen part.

codegen

The binary codegen target traverses all .rs-files in a given folder and generates optioned versions of the found struct and enums.

cargo run --features codegen --bin codegen example/input example/output