use crate::{Function, Module};
use alloc::vec::Vec;
#[derive(Clone, Debug)]
pub struct Environment {
pub(crate) modules: &'static [Module],
pub(crate) functions: &'static [Function],
}
impl Environment {
pub fn find_functions_such_that(&self, f: impl Fn(&Function) -> bool) -> Vec<Function> {
self.functions
.iter()
.filter(|function| f(function))
.cloned()
.collect()
}
pub fn find_modules_such_that(&self, f: impl Fn(&Module) -> bool) -> Vec<Module> {
self.modules
.iter()
.filter(|module| f(module))
.copied()
.collect()
}
}