summaryrefslogtreecommitdiff
path: root/runtime/ops/os.rs
diff options
context:
space:
mode:
authorcrowlKats <13135287+crowlKats@users.noreply.github.com>2021-03-18 19:42:01 +0100
committerGitHub <noreply@github.com>2021-03-18 14:42:01 -0400
commitb59151f39eba2ddcfe9448dfecd043046d7a0852 (patch)
tree06591bbf8e26910f808f20c4bbeaf9eaf764339c /runtime/ops/os.rs
parent62716422b9f57b11f3a0afb01f5011b63702226d (diff)
move runtime ops to serde ops (#9828)
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)
}