Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add dafny-types-codgen SmithyBuildPlugin #172

Open
robin-aws opened this issue Mar 8, 2023 · 1 comment
Open

Add dafny-types-codgen SmithyBuildPlugin #172

robin-aws opened this issue Mar 8, 2023 · 1 comment
Labels
general-dafny-use New functionality or clean up for broader use of this repo

Comments

@robin-aws
Copy link
Contributor

robin-aws commented Mar 8, 2023

This would live inside the same smithy-dafny-codegen library specified in #151, but would be a separate plugin from dafny-codegen.

The general idea for this kind of Smithy plugin is that generating the types for a set of Smithy shapes has use cases outside of client or server code generation. This is particularly true for Dafny, where just being able to convert between the generated types for Dafny and one or more target languages in-memory can be valuable.

Needs more design elaboration. At the time of writing this, no other smithy-<language> tool implements this plugin. It is only hinted at in the Smithy specification: https://smithy.io/2.0/guides/building-codegen/configuring-the-generator.html#how-to-name-codegen-plugins

@robin-aws robin-aws added the general-dafny-use New functionality or clean up for broader use of this repo label Mar 8, 2023
@robin-aws
Copy link
Contributor Author

Specification is evolving quickly to fill in details on this use case, and the shapes property of services is about to land: https://smithy.io/2.0/guides/building-codegen/overview-and-concepts.html#type-generation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
general-dafny-use New functionality or clean up for broader use of this repo
Projects
None yet
Development

No branches or pull requests

1 participant