]> Repositorios git - scryer-prolog.git/commitdiff
Add convenience methods Machine::load_module_string() and Machine::run_query()
authorNicolas Luck <[email protected]>
Tue, 11 Jul 2023 12:51:58 +0000 (14:51 +0200)
committerNicolas Luck <[email protected]>
Tue, 11 Jul 2023 12:51:58 +0000 (14:51 +0200)
src/machine/mod.rs

index 9a1c978aa81a9ef4f4af53f4f51757eaf7d05eff..2d5cff2eba135af16652320204e0949b6d20efa6 100644 (file)
@@ -320,6 +320,17 @@ impl Machine {
         String::from_utf8(output_bytes).unwrap()
     }
 
+    pub fn load_module_string(&mut self, module_name: &str, program: String) {
+        let stream = Stream::from_owned_string(program, &mut self.machine_st.arena);
+        self.load_file(module_name, stream);
+    }
+
+    pub fn run_query(&mut self, query: String) -> String{
+        self.set_user_input(query);
+        self.run_input_once();
+        self.get_user_output()
+    }
+
     pub(crate) fn configure_modules(&mut self) {
         fn update_call_n_indices(loader: &Module, target_code_dir: &mut CodeDir, arena: &mut Arena) {
             for arity in 1..66 {