libsw 2.2.0

Comprehensive stopwatch library
Documentation
# changelog

## [unreleased]

## [2.2.0] - 2023-01-13
### added
* added `Stopwatch::set_in_place`

### changed
* clarified documentation for `Stopwatch::from_raw` and `<Stopwatch as PartialEq>::eq`
* optimized `Stopwatch` `PartialEq` and `Hash` impls

## [2.1.1] - 2022-12-18
### changed
* changed `#[must_use]` message for `Guard`

## [2.1.0] - 2022-12-03
### added
* added `Stopwatch::checked_add` and `Stopwatch::checked_sub`
* added `Stopwatch::checked_elapsed` and `Stopwatch::checked_elapsed_at`
* added `Stopwatch::checked_stop` and `Stopwatch::checked_stop_at`

## [2.0.2] - 2022-11-19
### changed
* expanded on main-page crate documentation
* clarified `*_at` method docs
  * previously they may have implied that they block until the current time is `anchor`, when they actually just pretend it is
* re-ordered definitions of `Stopwatch` methods

## [2.0.1] - 2022-11-04
### added
* added `#[must_use]` message for `Guard`

### changed
* inlined function called in `Display` impl for `Error`
* removed unused lints

### fixed
* docs: fixed `Error` description, which implied it's exclusive to `Stopwatch`

## [2.0.0] - 2022-10-07
### changed
* **BREAKING:** changed `Guard::new` to return `libsw::Result<Guard>`
* **BREAKING:** changed `Error`
  * replaced all variants with `SwStart`, `SwStop`, `SwGuard`, and `GuardNew`
  * marked `non_exhaustive`
  * added `Error::expects_running`
  * added `Error::expects_stopped`
  * changed `Display` impl
* changed `Stopwatch::guard` and `Stopwatch::guard_at` to return `Error::SwGuard`
* shortened impl of `Stopwatch::start_at` and `Stopwatch::stop_at`
* replaced unreachable unwrap in `Stopwatch::guard_at` with debug assertion
* re-licensed under `MIT OR Apache-2.0`

## [1.8.2] - 2022-09-17
### changed
* mark `Guard` with `#[must_use]`

## [1.8.1] - 2022-09-08
### added
* added documentation notes on functions which take an anchor
  * `Stopwatch::elapsed_at`
  * `Stopwatch::start_at`
  * `Stopwatch::toggle_at`
  * `Guard::elapsed_at`

### changed
* updated crate description

## [1.8.0] - 2022-09-05
### added
* added `Stopwatch::toggle_at`

## [1.7.0] - 2022-09-04
### added
* added `Guard::new`
* defined MSRV as 1.58.1

### changed
* improved clarity of error messages
* cleaned up implementation of `Stopwatch::guard` and `Stopwatch::is_stopped`

## [1.6.0] - 2022-09-03
### added
* added `PartialEq`, `Eq`, and `Hash` impls for `Guard`

### changed
* minor docs improvements

## [1.5.0] - 2022-09-02
### added
* added `PartialEq` and `Eq` impls for `Stopwatch`
* added `Result<T>` type, an alias for `Result<T, Error>`

### changed
* changed implementation of `Hash` for `Stopwatch`
* updated documentation for `Stopwatch::from_raw`
* minor docs improvements

## [1.4.0] - 2022-08-20
### added
* added `Guard::elapsed`
* added `Guard::elapsed_at`

### changed
* minor docs improvements

## [1.3.0] - 2022-08-10
### added
* added `Guard`
  * added `Stopwatch::guard`
  * added `Stopwatch::guard_at`
  * added `Debug` and `Drop` impl for `Guard`

## [1.2.0] - 2022-08-09
### added
* added `Stopwatch::elapsed_at`
* added `Stopwatch::start_at`
* added `Stopwatch::stop_at`

## [1.1.0] - 2022-08-09
### added
* added `Stopwatch::saturating_add`
* added `Stopwatch::saturating_sub`

### changed
* improved docs organisation

## [1.0.0] - 2022-08-09
### added
* added `Stopwatch::new_started`
* added `Stopwatch::with_elapsed`
* added `Stopwatch::with_elapsed_started`
* added `Stopwatch::from_raw`
* added `Stopwatch::replace`
* added `Hash` impl for `Stopwatch`
* added `Display`, `Error`, and `Hash` impls for `Error`
* added examples to docs

### changed
* **BREAKING:** changed `Stopwatch::new` to take no arguments
* improved test consistency
* renamed license files

## [0.2.0] - 2022-08-07
### added
* added `Debug` impl for `Stopwatch`

### changed
* improved docs organisation

## [0.1.1] - 2022-08-07
### added
* added README.md

### changed
* updated crate metadata

## [0.1.0] - 2022-08-07
### added
* added `Stopwatch`
  * added `Stopwatch::new`
  * added `Stopwatch::start`
  * added `Stopwatch::stop`
  * added `Stopwatch::toggle`
  * added `Stopwatch::reset`
  * added `Stopwatch::set`
  * added `Stopwatch::elapsed`
  * added `Stopwatch::is_running`
  * added `Stopwatch::is_stopped`
  * added `Clone`, `Copy`, `Default`, `Add`, `Sub`, `AddAssign`, and `SubAssign` impls for `Stopwatch`
* added `Error`
  * added `Clone`, `Copy`, `Debug`, `PartialEq`, and `Eq` impls for `Error`