Commit Graph

80 Commits

Author SHA1 Message Date
Adam Leventhal 7e5dc6586c
gussy up docs for release (#193)
make TryInto use fully specified as std::convert::TryInto
2022-09-10 17:15:14 -07:00
Adam H. Leventhal ad8be1fdd5 update to typify 0.0.10 2022-09-10 09:41:07 -07:00
Adam Leventhal fa4e09f00a
sync w/ typify and add a test (#178) 2022-08-27 09:31:35 -07:00
Adam Leventhal e79ac19ae7
Add prelude for Client and extension traits (when they exist) (#176) 2022-08-27 08:23:02 -07:00
Adam Leventhal e4221a1350
Typify update for builder structs (#171) 2022-08-18 11:58:55 -07:00
Karen Cárcamo ba00230176
Derive Debug for types (#145)
* Derive Debug for client and types

* run tests

* update changelog

* refactor
2022-08-03 13:18:43 +12:00
Adam Leventhal ea5a6a5a79
update nexus and typify (#142) 2022-07-26 21:23:01 -07:00
Adam Leventhal bfd194f39c
Change builder methods for setting a parameter with type T to accept a TryInto<T> (#133)
This makes constrained types a bit more
ergonomic and will allow us to accept fallible builders more easily
2022-07-18 11:55:21 -07:00
Adam Leventhal 9f6f940705
update nexus openapi (#126) 2022-07-14 20:59:36 -07:00
dependabot[bot] 75519247fa
Bump typify from `7b5f72b` to `f58c5e2` (#117)
* Bump typify from `7b5f72b` to `f58c5e2`

Bumps [typify](https://github.com/oxidecomputer/typify) from `7b5f72b` to `f58c5e2`.
- [Release notes](https://github.com/oxidecomputer/typify/releases)
- [Commits](7b5f72b1e4...f58c5e23b1)

---
updated-dependencies:
- dependency-name: typify
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* fixups and output update

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adam H. Leventhal <ahl@oxide.computer>
2022-07-12 10:57:06 -07:00
Joshua M. Clulow 6e90509eef
improved template parsing (#111) 2022-07-08 16:54:53 -07:00
Adam Leventhal 03e2cfad3c
add support for application/x-www-form-urlencoded bodies (#109)
* add support for application/x-www-form-urlencoded bodies

* self review

* alphabetizing

* remove commented code

* update changelog
2022-07-07 18:35:36 -07:00
Adam Leventhal 6796e0c1ca
extra derives are accidentally ignored (#105) 2022-07-02 22:28:06 -07:00
Adam Leventhal 9b28ac87c6
add an optional builder pattern as well as extension traits for tags when using the builder interface (#86) 2022-07-02 19:09:38 -07:00
Adam Leventhal 3bc3d5972b
update nexus spec (#72) 2022-05-23 08:49:37 -07:00
dependabot[bot] 1ff7a900fa
Bump typify from 0.0.7 to 0.0.8 (#69)
* Bump typify from 0.0.7 to 0.0.8

Bumps [typify](https://github.com/oxidecomputer/typify) from 0.0.7 to 0.0.8.
- [Release notes](https://github.com/oxidecomputer/typify/releases)
- [Changelog](https://github.com/oxidecomputer/typify/blob/main/CHANGELOG.adoc)
- [Commits](https://github.com/oxidecomputer/typify/commits)

---
updated-dependencies:
- dependency-name: typify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* overwrite

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adam H. Leventhal <ahl@oxide.computer>
2022-05-21 21:22:10 -07:00
Adam Leventhal 1af79ebec7
honor default values for struct properties (#50) 2022-05-12 15:07:48 -07:00
Adam Leventhal 7f1b98f7b1
pull in the most recent typify (#44)
change symbol sanitization accordingly (use heck rather than convert_case)
fix: OpenAPI -> JSON Schema conversion was losing title and docs
remove assert that there are no tag (but still ignore them)
2022-05-09 17:30:08 -07:00
Adam Leventhal 75348207d7
improve rustdoc output for generated crates (#37) 2022-03-17 23:54:10 -07:00
Adam Leventhal ea80069ef3
Handle byte streams for both success and error responses (#35) 2022-03-15 16:11:47 -07:00
Adam Leventhal ae7c178e21
Correct renaming of path component identifiers (#34) 2022-03-08 14:31:56 -08:00
Adam Leventhal 305635e779
update (#33) 2022-03-07 23:22:44 -08:00
Adam Leventhal 579260a943
correct handling of parameters (#32)
- improve parameter handling for names that are invalid rust identifiers
- fix broken logic for non-optional query parameters
2022-03-04 10:58:16 -08:00
Adam Leventhal 25192b5dc1
Add a wrapper types for success and error responses (#26) 2022-02-08 08:59:38 -08:00
Adam Leventhal e47fc93748
generate iterators over dropshot paginated interfaces (#19)
* Adds support for interating with Streams over interfaces that are tagged
with the x-dropshot-pagination extension. This requires clients to use
the futures crate.

Adds tests that compile generated clients.

Updates nexus.json to reflect a more recent omicron API.

Changes all generated methods to have a lifetime ('a) bound on all
references. This isn't necessary for most methods, but greatly
simplifies generation of the associated paginated interface.
2022-01-05 12:02:46 -08:00
Adam Leventhal e58ebd18fa
introduce an intermediate form (#18)
introduce an intermediate form; this is going to be used to generate a few different things:
- an interator interface for paginated APIs; the IR will let us re-use
  the typify types
- a CLI generator that will generate calls into the generated client
- an automated test harness that will validate the generated client
  against a mock server
2021-12-09 18:15:24 -08:00
Adam H. Leventhal 75b224c047 Handle operations whose response is a `null` 2021-11-09 23:27:07 -08:00
Adam Leventhal a3fbbc06ba
fixes to support omicron clients (#14) 2021-11-06 23:24:03 -07:00
Adam Leventhal 7934be90b9
a variety of improvements to support omicron clients (#12)
- add the start of a client support crate
- add support for pre/post request hooks with consumer-specific data
- suggest type names for parameter and response types in case those
  types are unnamed
- handle more reference types by resolving them properly
- improve optional parameter generation
2021-10-29 07:16:39 -07:00
Adam Leventhal 97857c347c
convert from executable -> executable + library with macro and builder options (#9) 2021-10-17 10:40:22 -07:00