summaryrefslogtreecommitdiff
path: root/core/ops_builtin.rs
diff options
context:
space:
mode:
Diffstat (limited to 'core/ops_builtin.rs')
-rw-r--r--core/ops_builtin.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/core/ops_builtin.rs b/core/ops_builtin.rs
index 41741bf28..3fc9d62d6 100644
--- a/core/ops_builtin.rs
+++ b/core/ops_builtin.rs
@@ -38,6 +38,7 @@ pub(crate) fn init_builtins() -> Extension {
op_read::decl(),
op_read_all::decl(),
op_write::decl(),
+ op_write_all::decl(),
op_shutdown::decl(),
op_metrics::decl(),
op_format_file_name::decl(),
@@ -254,6 +255,18 @@ async fn op_write(
}
#[op]
+async fn op_write_all(
+ state: Rc<RefCell<OpState>>,
+ rid: ResourceId,
+ buf: ZeroCopyBuf,
+) -> Result<(), Error> {
+ let resource = state.borrow().resource_table.get_any(rid)?;
+ let view = BufView::from(buf);
+ resource.write_all(view).await?;
+ Ok(())
+}
+
+#[op]
async fn op_shutdown(
state: Rc<RefCell<OpState>>,
rid: ResourceId,