* Generate unique identifiers for internal variable names instead of using a
static prefix.
* Add tests for previous name collision issues.
* only prefix when needed.
Co-authored-by: Adam Leventhal <ahl@oxide.computer>
* add missing test invocation.
* update test fixtures per aaa40855485ca3c2ccf338c07d595ffc907975a1.
---------
Co-authored-by: Adam Leventhal <ahl@oxide.computer>
Generated methods return `ResponseValue<reqwest::Upgrade`, which may be
passed to a websocket protocol implementation such as
`tokio_tungstenite::WebSocketStream::from_raw_stream(rv.into_inner(), ...)`
for the purpose of implementing against the raw websocket connection, but
may later be extended as a generic to allow higher-level channel message
definitions.
Per the changelog, consumers will need to depend on reqwest 0.11.12 or
newer for HTTP Upgrade support, as well as base64 and rand if any
endpoints are websocket channels:
```
[dependencies]
reqwest = { version = "0.11.12" features = ["json", "stream"] }
base64 = "0.13"
rand = "0.8"
```
Co-authored-by: lif <>
* 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.
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