pipeline_script/plugin/
test.rs

1// use std::collections::HashMap;
2// use std::sync::{Arc, RwLock};
3// use crate::types::{Dynamic, Struct};
4// use crate::engine::Engine;
5// use crate::module::{Class, Function, Module, VariableDeclaration};
6// use crate::plugin::Plugin;
7// use crate::types::Value;
8//
9// pub struct TestPlugin;
10//
11// impl Plugin for TestPlugin{
12//     fn apply(e: &mut Engine) {
13//         let  mut test = Module::new("test");
14//         let mut expect_class = Class::new("Expect",vec![VariableDeclaration::new("value".into(),"Any".into())]);
15//         expect_class.register_method("toBe".into(),Function::Native(Arc::new(|ctx,args|{
16//             return Ok(().into())
17//         })));
18//         test.register_class(expect_class);
19//         test.register_pipe_function("test",|ctx,args|{
20//             let test_name =args.get(0).unwrap().as_string().unwrap();
21//             let mut closure = args.get(1).unwrap().as_dynamic().as_fn_ptr().unwrap();
22//             closure.call(ctx).unwrap();
23//
24//             return Ok(().into())
25//         });
26//         test.register_pipe_function("expect",|_,args|{
27//             let value = args.into_iter().next().unwrap();
28//             let mut props = HashMap::new();
29//             props.insert("value".into(),value);
30//             let s = Struct::new("Expect".into(),props);
31//             return Ok(Value::Mutable(Arc::new(RwLock::new(Dynamic::Struct(Box::new(s))))))
32//         });
33//         e.register_module(test);
34//     }
35// }