preroll 0.5.2

Easy boilerplate utilities for Rust http services which use async-std, Tide, Surf, and friends.
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.5.2]

- Dependency upgrade to eaze-tracing-honeycomb 0.2.1-eaze.4

## [0.5.1] - 2021-03-09

- Reduce dependency footprint from async-std.
    - Avoids wasm-related features.

## [0.5.0] - 2021-03-09

- Dependency upgrade to sqlx 0.5 & tide-sqlx 0.5 for the `postgres` feature.

## [0.4.3] - 2021-02-22

- Fixes `X-Honeycomb-Trace` header parsing.
    - Under the hood, this meant a switch to [the Eaze fork of tracing-honeycomb]https://github.com/eaze/tracing-honeycomb.

## [0.4.2] - 2021-02-16

- Avoid causing http errors on invalid `X-Honeycomb-Id` and `X-Request-Id`.
    - Instead, these get logged.

## [0.4.1] - 2021-02-02

- Updated the `"honeycomb"` feature to respect the `"HONEYCOMBIO_DATASET"` environment variable when possible.

## [0.4.0] - 2021-02-01

The same as 0.3 but with a forgotten update to Tide 0.16.

- Dependency upgrade to Tide 0.14 & tide-sqlx 0.4.

## [0.3.0] - 2021-02-01

- Removed the `"custom_middleware"` feature, is now automatically part of the optional arguments for `preroll::main!`.
- Changed `preroll::main!` to accept `VariadicRoutes` instead of variable macro arguments.
- Changed `preroll::test_utils::create_client` to accept `VariadicRoutes`, enabled api versioned testing.
- Changed assertions to always unwrap and panic immediately rather than return a `Result`.
- Changed assertions to accept `AsMut<http_types::Response>` rather than `surf::Response`.
- Added more test assertion helpers to `preroll::test_utils`.
- Added `/monitor/status` built-in endpoint to expose useful status information.
- Updated all documentation with major additions, overhauls, and examples.
- Improved the standalone example / test subproject.
- Improved internal CI.

## [0.2.0] - 2021-01-12

- Changed the api mounting point to be versioned - e.g. `/api/v1`.
    - This is based on argument position of the route handlers provided to `preroll::main!`.
- Changed routes setup function to instead receive `Route<'_, Arc<AppState>>`.
- Added `"test"` feature (makes UUIDs such as `correlation_id` be constant an nil).
- Added `"custom_middleware"` feature to add an extra hook into `preroll::main!`.
- Added an always-enabled `GET /monitor/ping` which responds only with `service_name`.
    - This is excluded from middleware.
- Added a debug-mode-only `GET /internal-error` for easy testing.
- Exposed and documented `JsonError`.
- Improved http error output for `assert_json_error`.

## [0.1.2] - 2021-01-06

- Fixed `honeycomb` feature. _(Incorrect `cfg` statements.)_

## [0.1.1] - 2020-12-21

- Fixed missing/empty `Cargo.toml` fields.

## [0.1.0] - 2020-12-21

- Initial exports:
  - `prelude`
  - `test_utils`
  - `utils`
  - `main`
  - `SetupResult`

- Initial feature set:
  - `"honeycomb"`
  - `"postgres"`
  - `"panic-on-error"`

Note: the following override is currently required to make `libhoney-rust` use `async-std` as its runtime:
```toml
[patch.crates-io.libhoney-rust]
git = "https://github.com/eaze/libhoney-rust.git"
branch = "runtime-async-std"
optional = true
default-features = false
features = ["runtime-async-std"]
```