//! This crate provides the `AnyMap` type, a safe and convenient store for one value of each type.
-#![cfg_attr(feature = "nightly", feature(core, std_misc))]
-#![cfg_attr(test, feature(test))]
+#![cfg_attr(all(feature = "unstable", test), feature(test))]
#![warn(missing_docs, unused_results)]
-#[cfg(test)]
+#[cfg(all(feature = "unstable", test))]
extern crate test;
use std::any::TypeId;
}
}
+#[cfg(feature = "unstable")]
#[bench]
fn bench_insertion(b: &mut ::test::Bencher) {
b.iter(|| {
})
}
+#[cfg(feature = "unstable")]
#[bench]
fn bench_get_missing(b: &mut ::test::Bencher) {
b.iter(|| {
})
}
+#[cfg(feature = "unstable")]
#[bench]
fn bench_get_present(b: &mut ::test::Bencher) {
b.iter(|| {
fn assert_send<T: Send>() { }
fn assert_sync<T: Sync>() { }
fn assert_clone<T: Clone>() { }
+ fn assert_debug<T: ::std::fmt::Debug>() { }
assert_send::<Map<Any + Send>>();
assert_send::<Map<Any + Send + Sync>>();
assert_sync::<Map<Any + Sync>>();
assert_sync::<Map<Any + Send + Sync>>();
+ assert_debug::<Map<Any>>();
+ assert_debug::<Map<Any + Send>>();
+ assert_debug::<Map<Any + Sync>>();
+ assert_debug::<Map<Any + Send + Sync>>();
assert_send::<Map<CloneAny + Send>>();
assert_send::<Map<CloneAny + Send + Sync>>();
assert_sync::<Map<CloneAny + Sync>>();
assert_clone::<Map<CloneAny + Send + Sync>>();
assert_clone::<Map<CloneAny + Sync>>();
assert_clone::<Map<CloneAny + Send + Sync>>();
+ assert_debug::<Map<CloneAny>>();
+ assert_debug::<Map<CloneAny + Send>>();
+ assert_debug::<Map<CloneAny + Sync>>();
+ assert_debug::<Map<CloneAny + Send + Sync>>();
}
}