diff options
author | crowlKats <13135287+crowlKats@users.noreply.github.com> | 2021-03-18 19:42:01 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-18 14:42:01 -0400 |
commit | b59151f39eba2ddcfe9448dfecd043046d7a0852 (patch) | |
tree | 06591bbf8e26910f808f20c4bbeaf9eaf764339c /runtime/ops/os.rs | |
parent | 62716422b9f57b11f3a0afb01f5011b63702226d (diff) |
move runtime ops to serde ops (#9828)
Diffstat (limited to 'runtime/ops/os.rs')
-rw-r--r-- | runtime/ops/os.rs | 21 |
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) } |