diff --git a/src/runtime2/runtime.rs b/src/runtime2/runtime.rs index 5b093be34c844f31be546b7853789b2f815dfe50..155dcd51e8311df571e18a31cb85c81134a37887 100644 --- a/src/runtime2/runtime.rs +++ b/src/runtime2/runtime.rs @@ -183,6 +183,20 @@ impl Runtime { return runtime; } + + pub fn create_component(&self, module_name: &[u8], routine_name: &[u8]) -> Result<(), ComponentCreationError> { + use crate::protocol::eval::ValueGroup; + let prompt = self.inner.protocol.new_component( + module_name, routine_name, + ValueGroup::new_stack(Vec::new()) + )?; + let reserved = self.inner.start_create_pdl_component(); + let ctx = CompCtx::new(&reserved); + let (key, _) = self.inner.finish_create_pdl_component(reserved, CompPDL::new(prompt, 0), ctx, false); + self.inner.enqueue_work(key); + + return Ok(()) + } } impl Drop for Runtime {