diff options
Diffstat (limited to 'runtime/ops/io.rs')
-rw-r--r-- | runtime/ops/io.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/runtime/ops/io.rs b/runtime/ops/io.rs index 34cd541d5..d54c66efd 100644 --- a/runtime/ops/io.rs +++ b/runtime/ops/io.rs @@ -1,5 +1,6 @@ // Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. +use deno_core::error::bad_resource_id; use deno_core::error::not_supported; use deno_core::error::resource_unavailable; use deno_core::error::AnyError; @@ -330,6 +331,16 @@ impl StdFileResource { None => Err(resource_unavailable()), } } + + pub fn clone_file( + state: &mut OpState, + rid: ResourceId, + ) -> Result<std::fs::File, AnyError> { + Self::with(state, rid, move |r| match r { + Ok(std_file) => std_file.try_clone().map_err(AnyError::from), + Err(_) => Err(bad_resource_id()), + }) + } } impl Resource for StdFileResource { |