kqueue 1.2.0

kqueue interface for BSDs
Documentation
# Changelog

## 1.2.0

Adds:

* Bump kqueue-sys to 1.1.1
* Handle `NOTE_READ` on FreeBSD
* Better documentation of errors
* Add fd-based benchmarks

Fixes:

* Remove all panics, returning errors instead
* Do not close `File` or fd's on drop, since we do not own them
* `Vnode::Extend` has nothing to do with `truncate(2)`
* Allow removal of non-utf8 pathnames (although imperfect)
* Remove a bunch of unchecked casts and fail if data is out-of-range
* `from_error`, `is_err`, `poll`, `poll_forever` and `iter` are `#[must_use]`
* Internally use `OwnedFd` to track our `kqueue` object
* `Ident.PartialEq` did not compare enum discriminants
* Track watches in a `HashMap`, leading to much faster `remove_*` performance
* Preallocate internal vec when watching objects, reduces memory usage and
  increase perf
* Fast fail returning events from unstarted `Watcher`s
* Don't unconditionally declare ourselves as started
* Don't include drops in benchmark results

## 1.1.1

Fixes:

* Don't try and remove file descriptor 0 when removing unwatched filenames

## 1.1.0

Adds:

* Better error messages for panics
* Rust Edition 2021

Fixes:

* Don't leak file descriptors when removing filenames from being watched
* Reduce memory usage when starting a new watcher
* Don't leak file descriptors when removing fd's from being watched (see commit
  for rationale)

## 1.0.8

Adds:

* ios support

Fixes:

* panic on overflow on more than max 32bit files

## 1.0.7

Fixes:

* Fixes broken 32bit builds by matching `timespec` defs to libc

## 1.0.6

Fixes:

* marks `Vnode` enum `non_exhaustive` to fix backwards compatibility in 1.x

## 1.0.5

Adds:

* docs.rs support
* added new enum variants specific to FreeBSD (broke backwards compatibility)

Fixes:

* Fixes broken 32bit builds

## 1.0.4

Fixes:

* Fixes broken NetBSD build

## 1.0.3

Adds:

* #6: Adds a new `Watcher.poll_forever()` method which blocks on new events. This works
  around buggy behavior in the original `Watcher.poll()` method.
* !3: Adds an implementation for `std::os::unix::io::AsRawFd` for `Watcher` for
  nested kqueues.

## 1.0.2

* Fixed #4: Fix bug where wrong data types were used on i386 FreeBSD

## 1.0.1

* Merged !1 as a fix for #3. We properly fill in the `ext` field for `kqueue`
  extensions on FreeBSD.

## 1.0.0

### Breaking changes

* Bumped `bitflags` in `rust-kqueue-sys`: Now all bitflag constants must be qualified:

`EV_DELETE` -> `EventFlag::EV_DELETE`
`NOTE_WRITE` > `FilterFlag::NOT_WRITE`

### Other changes

* 2018 edition and clippy changes