Generate a match arm for binding -> core direction.
Binding enums are always unit-variant-only. Core enums may have data variants.
For data variants: BindingEnum::Variant => CoreEnum::Variant(Default::default(), ...)
Check if an enum can have From/Into safely generated (both directions).
Supports unit-variant enums and enums whose data variants contain only
simple convertible field types (primitives, String, Bytes, Path, Unit).
Build the set of types that can have binding→core From safely generated.
Strict: excludes types with sanitized fields (lossy conversion).
This is transitive: a type is convertible only if all its Named field types
are also convertible (or are enums with From/Into support).
Build the set of types that can have core→binding From safely generated.
More permissive than binding→core: allows sanitized fields (uses format!(“{:?}”))
and accepts data enums (data discarded with .. in match arms).
Generate a match arm for core -> binding direction.
Core enums may have data variants; binding enums are always unit-variant-only.
For data variants: CoreEnum::Variant(..) => Self::Variant