Expose some internals for priroda
This commit is contained in:
parent
6f9ee8b9e5
commit
edc2fb5f60
12
src/lib.rs
12
src/lib.rs
@ -37,15 +37,15 @@ mod range_map;
|
||||
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};
|
||||
|
@ -17,6 +17,12 @@ use crate::AllocMap;
|
||||
#[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 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()))
|
||||
|
Loading…
x
Reference in New Issue
Block a user