char/avril
(wip) why'd you have to go and make things so complicaaaaated?
git clone https://git.t4t.associates/char/avril
f4a0f5b
main
1use std:: cell:: RefCell ; 2use std:: convert:: Infallible ; 3use std:: rc:: Rc ; 4use std:: sync:: Arc ; 5 6use avril_caps:: Capabilities ; 7use avril_core:: Op ; 8use avril_host:: environment:: Environment ; 9 10use avril_host:: io:: response; 11 12pub fn ops ( caps : Arc < Capabilities >, environment : Rc < RefCell < Environment >>) ->Vec < Op > { 13vec! [ 14Op :: new ( "op_env_get" , { 15let caps = caps. clone (); 16let environment = environment. clone (); 17move |name : String |{ 18Ok ::< _ , Infallible >( response ( environment. borrow (). get ( & caps, & name))) 19} 20}), 21Op :: new ( "op_env_set" , { 22let caps = caps. clone (); 23let environment = environment. clone (); 24move |( name, value): ( String , String ) |{ 25Ok ::< _ , Infallible >( response ( environment. borrow_mut (). set ( & caps, & name, value))) 26} 27}), 28Op :: new ( "op_env_delete" , { 29let caps = caps. clone (); 30let environment = environment. clone (); 31move |name : String |{ 32Ok ::< _ , Infallible >( response ( environment. borrow_mut (). delete ( & caps, & name))) 33} 34}), 35Op :: new ( "op_env_to_object" , move |(): () |{ 36Ok ::< _ , Infallible >( environment. borrow (). to_object ( & caps)) 37}), 38] 39}