* fix(rust): discriminator mapping to serde rename
Discriminator mapping has been ignored in some cases.
Even existing samples had wrong definition in some cases
This PR addresses this
* fix(rust): `oneOf` generation for client
Solves #17869 and #17896 and also includes unmerged $17898
Unfortunately it affects quite a lot of code, but we can see that only client-side models were affected by re-generation.
I tried to split this PR to several, but they're really coupled and hard to create a chain of PRs.
* fix: indentation in `impl Default`
* missing fixes
* fix: correct typeDeclaration with unaliased schema
* style: improve indentation for models
* fix: user toModelName for aliases of oneOf
* refactor: unify `getTypeDeclaration` for rust
* cover the case when `mapping` has the same `ref` for different mapping names
* test: add test for previous change
* style: remove extra qualified path to models
* add some comments
* fix(build): use method of `List` instead of specific for `LinkedList`
* [rust] basic oneOf support
Suport oneOf as a rust struct enum.
Details:
Enum without a discriminator is untagged being
"untagged" simply means serde won't attempt to
store the name of the enum inside the serialized
object. See
https://serde.rs/enum-representations.html#untagged
for more
Also check to make sure the mapping values
are not an empty object (aka null).
Co-authored-by: Nikita Puzankov <git@bshn.rs>
* refactor: fix clippy lints
No longer needed as of reqwest 0.10, it now takes the response as owned instead of mut ref.
Is not empty is more clear
* fix: discriminator and oneof case
Will show as a struct enum when there are additional fields, otherwise will be a tuple enum.
not sure the purpose of x-mapped-models, perhaps legacy code? mappedModels appears to do the same thing.
Also add default implementation for quality of life
* chore: update samples
---------
Co-authored-by: Nikita Puzankov <git@bshn.rs>