From: Nicolas Luck Date: Tue, 11 Jul 2023 12:51:58 +0000 (+0200) Subject: Add convenience methods Machine::load_module_string() and Machine::run_query() X-Git-Tag: remove^2~70 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=2f45f0cfed9bcc3f89e8d5aceeeb359f60f55d56;p=scryer-prolog.git Add convenience methods Machine::load_module_string() and Machine::run_query() --- diff --git a/src/machine/mod.rs b/src/machine/mod.rs index 9a1c978a..2d5cff2e 100644 --- a/src/machine/mod.rs +++ b/src/machine/mod.rs @@ -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 {