* Migrate to core::futures
This drops all dependencies on the 'futures' crate, and upgrades to
hyper-0.13 and tokio-0.2. Methods that return futures now use
async/await.
Since hyper has removed hyper_run(), I have in turn removed the
HttpExporter::run() method. The user should just call async_run()
and spawn or await the result however they wish.
* Bump CI minimum rust to 1.39 for async/await
Co-authored-by: Toby Lawrence <tobz@users.noreply.github.com>
This change adds a new trait -- `Builder` -- which defines a value that
can create new recorder instances.
As we have a need to generate owned recorders, in particular for
futures-based code, the `Builder` trait provides a way to do so without
any jankiness, such as the prior Clone-based approach.
As such, all exporters now expect a builder to be passed in, rather than
the recorder itself.