summaryrefslogtreecommitdiff
path: root/cli/ops/random.rs
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2020-09-10 09:57:45 -0400
committerGitHub <noreply@github.com>2020-09-10 09:57:45 -0400
commit7c2e7c660804afca823d60e6496aa853f75db16c (patch)
treeb7746b181c1564c6b1abd2e906662f9e6b008417 /cli/ops/random.rs
parent6f70e6e72ba2d5c1de7495adac37c1e4f4e86b24 (diff)
Use gotham-like state for ops (#7385)
Provides a concrete state type that can be dynamically added. This is necessary for op crates. * renames BasicState to OpState * async ops take `Rc<RefCell<OpState>>` * sync ops take `&mut OpState` * removes `OpRegistry`, `OpRouter` traits * `get_error_class_fn` moved to OpState * ResourceTable moved to OpState
Diffstat (limited to 'cli/ops/random.rs')
-rw-r--r--cli/ops/random.rs14
1 files changed, 6 insertions, 8 deletions
diff --git a/cli/ops/random.rs b/cli/ops/random.rs
index 4ce1411b8..1ef0c2645 100644
--- a/cli/ops/random.rs
+++ b/cli/ops/random.rs
@@ -1,26 +1,24 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-use crate::state::State;
use deno_core::ErrBox;
-use deno_core::OpRegistry;
+use deno_core::OpState;
use deno_core::ZeroCopyBuf;
use rand::thread_rng;
use rand::Rng;
use serde_json::Value;
-use std::rc::Rc;
-pub fn init(s: &Rc<State>) {
- s.register_op_json_sync("op_get_random_values", op_get_random_values);
+pub fn init(rt: &mut deno_core::JsRuntime) {
+ super::reg_json_sync(rt, "op_get_random_values", op_get_random_values);
}
fn op_get_random_values(
- state: &State,
+ state: &mut OpState,
_args: Value,
zero_copy: &mut [ZeroCopyBuf],
) -> Result<Value, ErrBox> {
assert_eq!(zero_copy.len(), 1);
-
- if let Some(seeded_rng) = &state.seeded_rng {
+ let cli_state = super::cli_state(state);
+ if let Some(seeded_rng) = &cli_state.seeded_rng {
seeded_rng.borrow_mut().fill(&mut *zero_copy[0]);
} else {
let mut rng = thread_rng();