nosy 0.3.0

Change notification / observation / broadcast channels, with filtering and coalescing. no_std compatible.
Documentation
#![allow(clippy::bool_assert_comparison, reason = "less legible")]
#![allow(clippy::arc_with_non_send_sync)]

#[cfg(feature = "async")]
mod future;
mod listener;
mod load_store;
mod static_properties;
mod store;
mod store_ref;
mod tools;

// We want to test that `nosy::sync` and `nosy::unsync` are equally usable — that there are no
// differences in declaration that cause one to be able to do something the other cannot,
// other than their fundamental `Send + Sync` difference.
// In order to do that, we write tests that are compiled once for each flavor.
#[cfg(feature = "std-sync")]
// TODO: Ideally, we would test the "spin-sync" version but it has partial item availability
// that's tricky to cfg for.
mod std_sync {
    #![allow(clippy::duplicate_mod)]
    use nosy::sync as flavor;
    include!("any_flavor/mod.rs");
}
mod unsync {
    #![allow(clippy::duplicate_mod)]
    use nosy::unsync as flavor;
    include!("any_flavor/mod.rs");
}