Open kubukoz opened 3 months ago
The protocol module should not be considered "library code", so bin breakage is okay.
Assuming we went ahead, what would the set-up even look like ?
The trait codegen can be set up as a source generator in the build tool. The trait classes are generated with builders and getters, and your validators / services can use those. I can't exactly share a snippet but we've done this at work so it's doable
https://github.com/smithy-lang/smithy/blob/1805e515bc3877a02aa8351da1a7ea62e92a2c8f/smithy-trait-codegen/src/main/java/software/amazon/smithy/traitcodegen/TraitCodegen.java
Doing this is likely to cause bincompat breakage in the protocol module, but it'll save us some boilerplate.
Should probably be attempted in Alloy first.