diff options
Diffstat (limited to 'cli/ops/random.rs')
| -rw-r--r-- | cli/ops/random.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/cli/ops/random.rs b/cli/ops/random.rs new file mode 100644 index 000000000..27e120faa --- /dev/null +++ b/cli/ops/random.rs @@ -0,0 +1,25 @@ +// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. +use crate::msg; +use crate::ops::empty_buf; +use crate::ops::ok_buf; +use crate::ops::CliOpResult; +use crate::state::ThreadSafeState; +use deno::*; +use rand::thread_rng; +use rand::Rng; + +pub fn op_get_random_values( + state: &ThreadSafeState, + _base: &msg::Base<'_>, + data: Option<PinnedBuf>, +) -> CliOpResult { + if let Some(ref seeded_rng) = state.seeded_rng { + let mut rng = seeded_rng.lock().unwrap(); + rng.fill(&mut data.unwrap()[..]); + } else { + let mut rng = thread_rng(); + rng.fill(&mut data.unwrap()[..]); + } + + ok_buf(empty_buf()) +} |
