]> git.lizzy.rs Git - rust.git/commitdiff
Merge remote-tracking branch 'origin/master' into rustup
authorRalf Jung <post@ralfj.de>
Wed, 28 Nov 2018 15:15:56 +0000 (16:15 +0100)
committerRalf Jung <post@ralfj.de>
Wed, 28 Nov 2018 15:15:56 +0000 (16:15 +0100)
src/lib.rs
src/mono_hash_map.rs

index ba15f62f0fa7204d5c631ab88d279d337584467c..9739a7a95b6dc8f17cde256124a85ba7d6a09cb3 100644 (file)
 mod mono_hash_map;
 mod stacked_borrows;
 
-use crate::fn_call::EvalContextExt as MissingFnsEvalContextExt;
-use crate::operator::EvalContextExt as OperatorEvalContextExt;
-use crate::intrinsic::EvalContextExt as IntrinsicEvalContextExt;
-use crate::tls::{EvalContextExt as TlsEvalContextExt, TlsData};
+pub use crate::fn_call::EvalContextExt as MissingFnsEvalContextExt;
+pub use crate::operator::EvalContextExt as OperatorEvalContextExt;
+pub use crate::intrinsic::EvalContextExt as IntrinsicEvalContextExt;
+pub use crate::tls::{EvalContextExt as TlsEvalContextExt, TlsData};
 use crate::range_map::RangeMap;
 #[allow(unused_imports)] // FIXME rustc bug https://github.com/rust-lang/rust/issues/53682
-use crate::helpers::{ScalarExt, EvalContextExt as HelpersEvalContextExt};
+pub use crate::helpers::{ScalarExt, EvalContextExt as HelpersEvalContextExt};
 use crate::mono_hash_map::MonoHashMap;
-use crate::stacked_borrows::{EvalContextExt as StackedBorEvalContextExt};
+pub use crate::stacked_borrows::{EvalContextExt as StackedBorEvalContextExt};
 
 // Used by priroda
 pub use crate::stacked_borrows::{Borrow, Stack, Stacks, BorStackItem};
index e30578a5a77b9c4e550adb92cce15014c1a39900..278bbd9cf2b13d5ead44c7b1de87f615d0542fba 100644 (file)
 #[derive(Debug, Clone)]
 pub struct MonoHashMap<K: Hash + Eq, V>(RefCell<FxHashMap<K, Box<V>>>);
 
+impl<K: Hash + Eq, V> MonoHashMap<K, V> {
+    pub fn values<T>(&self, f: impl FnOnce(&mut dyn Iterator<Item=&V>) -> T) -> T {
+        f(&mut self.0.borrow().values().map(|v| &**v))
+    }
+}
+
 impl<K: Hash + Eq, V> Default for MonoHashMap<K, V> {
     fn default() -> Self {
         MonoHashMap(RefCell::new(Default::default()))