diff --git a/build.rs b/build.rs index 1d3c4ac..04ff4a0 100644 --- a/build.rs +++ b/build.rs @@ -22,14 +22,14 @@ fn main() { // BTreeMap::get_key_value // https://blog.rust-lang.org/2019/12/19/Rust-1.40.0.html#additions-to-the-standard-library - if minor >= 40 { - println!("cargo:rustc-cfg=btreemap_get_key_value"); + if minor < 40 { + println!("cargo:rustc-cfg=no_btreemap_get_key_value"); } // BTreeMap::remove_entry // https://blog.rust-lang.org/2020/07/16/Rust-1.45.0.html#library-changes - if minor >= 45 { - println!("cargo:rustc-cfg=btreemap_remove_entry"); + if minor < 45 { + println!("cargo:rustc-cfg=no_btreemap_remove_entry"); } } diff --git a/src/map.rs b/src/map.rs index c64534f..5da17cf 100644 --- a/src/map.rs +++ b/src/map.rs @@ -132,16 +132,16 @@ impl Map { String: Borrow, Q: ?Sized + Ord + Eq + Hash, { - #[cfg(any(feature = "preserve_order", btreemap_remove_entry))] + #[cfg(any(feature = "preserve_order", not(no_btreemap_remove_entry)))] return self.map.remove_entry(key); - #[cfg(all(btreemap_get_key_value, not(any(feature = "preserve_order", btreemap_remove_entry))))] + #[cfg(all(not(no_btreemap_get_key_value), not(any(feature = "preserve_order", not(no_btreemap_remove_entry)))))] { let (key, _value) = self.map.get_key_value(key)?; let key = key.clone(); let value = self.map.remove::(&key)?; Some((key, value)) } - #[cfg(not(any(feature = "preserve_order", btreemap_remove_entry, btreemap_get_key_value)))] + #[cfg(not(any(feature = "preserve_order", not(no_btreemap_remove_entry), not(no_btreemap_get_key_value))))] { use std::ops::{Bound, RangeBounds};