conjure-codegen 5.3.0

Rust code generation for Conjure definitions
Documentation
<p align="right">
<a href="https://autorelease.general.dmz.palantir.tech/palantir/conjure-rust"><img src="https://img.shields.io/badge/Perform%20an-Autorelease-success.svg" alt="Autorelease"></a>
</p>

# Conjure-Rust

[![CircleCI](https://circleci.com/gh/palantir/conjure-rust.svg?style=shield)](https://circleci.com/gh/palantir/conjure-rust) [![Bintray](https://img.shields.io/bintray/v/palantir/releases/conjure-rust.svg)](https://bintray.com/palantir/releases/conjure-rust/_latestVersion) [![License](https://img.shields.io/badge/License-Apache%202.0-lightgrey.svg)](https://opensource.org/licenses/Apache-2.0)

_[Conjure](https://github.com/palantir/conjure) support for Rust._

## conjure-rust

`conjure-rust` is an [RFC 002](
https://github.com/palantir/conjure/blob/master/docs/rfc/002-contract-for-conjure-generators.md)-compliant CLI, which can
be used via a build tool like [gradle-conjure](https://github.com/palantir/gradle-conjure), or manually:

```
Generate Rust code from a conjure IR file

Usage: conjure-rust generate [OPTIONS] <INPUT_JSON> <OUTPUT_DIRECTORY>

Arguments:
  <INPUT_JSON>        Path to a JSON-formatted Conjure IR file
  <OUTPUT_DIRECTORY>  Directory to place generated code

Options:
      --exhaustive[=<EXHAUSTIVE>]
          Generate exhaustively matchable enums and unions [default: false] [possible values: true, false]
      --serializeEmptyCollections[=<SERIALIZE_EMPTY_COLLECTIONS>]
          Include empty collection fields in serialized output [default: false] [possible values: true, false]
      --stripPrefix <prefix>
          Strip a prefix from types's package paths
      --productName <name>
          The name of the product
      --productVersion <version>
          The version of the product
      --crateVersion <version>
          The version of the generated crate. Defaults to `--productVersion`
      --extraManifestJson <json>
          Extra manifest configuration as a JSON object.
          This JSON will be converted to TOML and merged into the generated Cargo.toml manifest.
          
          Example:
              --extraManifestJson '{
                  "package": { "publish": ["some-registry-name"], "license": "MIT" },
                  "dependencies": { "serde": { "version": "1.0", "features": ["default"] } },
                  "features": { "fancy-feature": ["foo", "bar"] }
              }'
          
          Use single quotes to avoid shell escaping issues.
  -h, --help
          Print help
```

## conjure-codegen

[Documentation](https://docs.rs/conjure-codegen)

`conjure-codegen` is the library which turns a Conjure IR file into Rust code. It powers the `conjure-rust` CLI, but
can also be used on its own in e.g. build scripts as an alternative approach. See its documentation for more details, as
well as examples of generated code.

## conjure-error

[Documentation](https://docs.rs/conjure-error)

`conjure-error` is the runtime support library that the errors generated by `conjure-codegen` depend on. It defines
various standard error types and functionality to serialize and deserialize errors.

## conjure-http

[Documentation](https://docs.rs/conjure-http)

`conjure-http` is the runtime support library that the service clients and resources generated by `conjure-codegen`
depend on. It defines interfaces used by the underlying client and server implementations.

## conjure-object

[Documentation](https://docs.rs/conjure-object)

`conjure-object` is the runtime support library that the objects generated by `conjure-codegen` depend on. It reexports
the various third party types that correspond to Conjure primitives.

## conjure-serde

[Documentation](https://docs.rs/conjure-serde)

`conjure-serde` provides wrapper types for serde `Serializer`s and `Deserializer`s which adjust behavior to match
Conjure's expectations around binary data, non-finite floating point values, and unknown fields.