## mozilla/authenticator-rs — v0.2.15…v0.3.0

_34 commits._

### Features
- **Update all other platforms with the new error mechanism** (75179d6)
- **Add a higher-level AuthenticatorService that can query multiple backends** (a73c504)
- **Add authenticator USB and Firmware details to the C API** (b820bd2)
- **Add cross cross-platform testing tools** (858cf3c)
- **Add rustfmt, cargo test, and clippy to the pre-commit config** (deaf434)

### Fixes
- **edition 2018 fix for OpenBSD** (663408e)
- **stub fix** (9f365c6)
- **cargo fix freebsd** (43c3bb0)
- **cargo fix, move to edition 2018** (df2d127)
- **Fix fuzzing targets to use stable cargo-fuzz** (4c1469a)

### Backend
- **Tagging v0.3.0** (38e640d)
- **Review update** (6f913a2)
- **Better errors - only MacOS** (5b47560)
- **Absorb status updates at the C API, rather than letting the channel error** (1ebb134)
- **Create status channel for MacOS** (51c576a)
- **Check CFGetTypeID for GetProperty on MacOS** (c270f85)
- **crates.io listing improvements** (2cb1ff0)
- **more targets** (2f671b1)
- **Without having to cheat with a closure, static lifetime no longer is necessary for the StateCallback's Fn trait. Thanks Dana** (9c65976)
- **Rework callbacks in all other platforms** (e4cbf17)
- **Genericize StateCallback for MacOS** (d5d1a49)
- **Remove boxfnonce and rename to StateCallback on MacOS** (c67bdd9)
- **Don't try to fuzz on Windows** (4b04311)
- **Fixup Device struct initialization** (db432d1)
- **Oops, ASAN is only for Linux** (0b264c0)
- **Unlock winapi to 0.3+** (406a896)
- **Switch to mem::MaybeUninit** (4f9b817)
- **Build for Windows on Travis** (c37ee01)
- **Don't fuzz except on stable** (0d630a6)
- **Use build only for most cross targets** (45e622d)
- **Check cargo-fuzz on Travis** (68e26cf)
- **rustfmt src/linux** (8fc3dea)
- **Fixups for PR #112** (72742e6)
- **Extract in/out HID report sizes from descriptors** (8f26464)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/mozilla/authenticator-rs?utm_source=github-action)._