summaryrefslogtreecommitdiff
path: root/runtime/ops/os.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ops/os.rs')
-rw-r--r--runtime/ops/os.rs21
1 files changed, 8 insertions, 13 deletions
diff --git a/runtime/ops/os.rs b/runtime/ops/os.rs
index addab7894..dec7f9bd6 100644
--- a/runtime/ops/os.rs
+++ b/runtime/ops/os.rs
@@ -2,7 +2,6 @@
use crate::permissions::Permissions;
use deno_core::error::{type_error, AnyError};
-use deno_core::serde_json;
use deno_core::serde_json::json;
use deno_core::serde_json::Value;
use deno_core::url::Url;
@@ -44,17 +43,16 @@ fn op_exec_path(
}
#[derive(Deserialize)]
-struct SetEnv {
+pub struct SetEnv {
key: String,
value: String,
}
fn op_set_env(
state: &mut OpState,
- args: Value,
+ args: SetEnv,
_zero_copy: &mut [ZeroCopyBuf],
) -> Result<Value, AnyError> {
- let args: SetEnv = serde_json::from_value(args)?;
state.borrow::<Permissions>().env.check()?;
let invalid_key =
args.key.is_empty() || args.key.contains(&['=', '\0'] as &[char]);
@@ -77,16 +75,15 @@ fn op_env(
}
#[derive(Deserialize)]
-struct GetEnv {
+pub struct GetEnv {
key: String,
}
fn op_get_env(
state: &mut OpState,
- args: Value,
+ args: GetEnv,
_zero_copy: &mut [ZeroCopyBuf],
) -> Result<Value, AnyError> {
- let args: GetEnv = serde_json::from_value(args)?;
state.borrow::<Permissions>().env.check()?;
if args.key.is_empty() || args.key.contains(&['=', '\0'] as &[char]) {
return Err(type_error("Key contains invalid characters."));
@@ -99,16 +96,15 @@ fn op_get_env(
}
#[derive(Deserialize)]
-struct DeleteEnv {
+pub struct DeleteEnv {
key: String,
}
fn op_delete_env(
state: &mut OpState,
- args: Value,
+ args: DeleteEnv,
_zero_copy: &mut [ZeroCopyBuf],
) -> Result<Value, AnyError> {
- let args: DeleteEnv = serde_json::from_value(args)?;
state.borrow::<Permissions>().env.check()?;
if args.key.is_empty() || args.key.contains(&['=', '\0'] as &[char]) {
return Err(type_error("Key contains invalid characters."));
@@ -118,16 +114,15 @@ fn op_delete_env(
}
#[derive(Deserialize)]
-struct Exit {
+pub struct Exit {
code: i32,
}
fn op_exit(
_state: &mut OpState,
- args: Value,
+ args: Exit,
_zero_copy: &mut [ZeroCopyBuf],
) -> Result<Value, AnyError> {
- let args: Exit = serde_json::from_value(args)?;
std::process::exit(args.code)
}