harn_vm/vm/
introspection.rs1use super::{Vm, VmBuiltinMetadata};
4
5impl Vm {
6 pub fn builtin_names(&self) -> Vec<String> {
8 let mut names: Vec<String> = self.builtins.keys().cloned().collect();
9 names.extend(self.async_builtins.keys().cloned());
10 names
11 }
12
13 pub fn capability_method_names(&self) -> Vec<(harn_builtin_meta::CapabilityId, String)> {
17 self.capability_methods
18 .iter()
19 .flat_map(|(capability, methods)| {
20 methods
21 .keys()
22 .map(move |method| (*capability, method.clone()))
23 })
24 .collect()
25 }
26
27 pub fn builtin_metadata(&self) -> Vec<VmBuiltinMetadata> {
29 self.builtin_metadata.values().cloned().collect()
30 }
31
32 pub fn builtin_metadata_for(&self, name: &str) -> Option<&VmBuiltinMetadata> {
34 self.builtin_metadata.get(name)
35 }
36}