onion_vm/types/lambda/
mod.rs1use rustc_hash::FxHashMap;
2
3use crate::types::{
4 object::{OnionObject, OnionStaticObject},
5 pair::OnionPair,
6 tuple::OnionTuple,
7};
8
9pub mod context;
10pub mod definition;
11pub mod launcher;
12pub(crate) mod native;
13pub mod runnable;
14pub mod vm_instructions;
15pub mod parameter;
16
17pub fn build_dict_from_hashmap(
18 hashmap: &FxHashMap<String, OnionStaticObject>,
19) -> OnionStaticObject {
20 let mut pairs = vec![];
21 for (key, value) in hashmap {
22 pairs.push(OnionPair::new_static(
23 &OnionObject::String(key.clone().into()).stabilize(),
24 &value,
25 ));
26 }
27 OnionTuple::new_static_no_ref(&pairs)
28}
29
30pub fn build_dict_from_hashmap_weak(hashmap: &FxHashMap<String, OnionObject>) -> OnionStaticObject {
31 let mut pairs = vec![];
32 for (key, value) in hashmap {
33 pairs.push(
34 OnionObject::Pair(
35 OnionPair::new(OnionObject::String(key.clone().into()), value.clone()).into(),
36 )
37 .consume_and_stabilize(),
38 );
39 }
40 OnionTuple::new_static_no_ref(&pairs)
41}