diff options
Diffstat (limited to 'core/ops_builtin.rs')
-rw-r--r-- | core/ops_builtin.rs | 13 |
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, |