swagger-api / swagger-api/swagger-codegen
[rust-server] Add mechanism to be able to provide additional derives
Nobody has claimed this yet.
- Dominant language
- Mustache
- Stars
- 17.8k
- Forks
- 6k
- PR merge metrics
- No merged PRs in 30d
Description
Description
This is a vague feature idea for rust-server. I may have a look at implementing some day.
Currently, rust-server derives a number of common traits for the models it generates. I've ran into some use-cases where it would be helpful to be able to choose to derive additional things (e.g. https://beachape.com/frunk/frunk_core/labelled/trait.LabelledGeneric.html).
However, there are a potentially infinite number of different things we might wish to derive. As such, I wonder if we should add some mechanism whereby a user could provide a crate and a derive, which swagger-codegen could automatically add.
At the moment, a user could provide their own Cargo.mustache and models.mustache (c.f. #6414) and add the crates/derives themselves. Nonetheless, it might be useful to add proper support so that users don't need to maintain their own versions of the templates.
Swagger-codegen version
Swagger declaration file content or url
Command line used for generation
Steps to reproduce
Related issues/PRs
Suggest a fix/enhancement
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the rust-server templates Cargo.mustache and models.mustache, along with the approach described in issue #6414. Clarify how users would provide crates and derives and which configuration surface should control them. Done means generated Rust models can receive additional user-selected derives without maintaining custom template copies.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100