summaryrefslogtreecommitdiff
path: root/cli/ops/performance.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/ops/performance.rs')
-rw-r--r--cli/ops/performance.rs34
1 files changed, 26 insertions, 8 deletions
diff --git a/cli/ops/performance.rs b/cli/ops/performance.rs
index 090fc3323..94f6dbc38 100644
--- a/cli/ops/performance.rs
+++ b/cli/ops/performance.rs
@@ -1,7 +1,10 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
-use super::dispatch_json::{JsonOp, Value};
+use super::dispatch_flatbuffers::serialize_response;
+use super::utils::*;
+use crate::msg;
use crate::state::ThreadSafeState;
use deno::*;
+use flatbuffers::FlatBufferBuilder;
// Returns a milliseconds and nanoseconds subsec
// since the start time of the deno runtime.
@@ -9,9 +12,10 @@ use deno::*;
// nanoseconds are rounded on 2ms.
pub fn op_now(
state: &ThreadSafeState,
- _args: Value,
- _zero_copy: Option<PinnedBuf>,
-) -> Result<JsonOp, ErrBox> {
+ base: &msg::Base<'_>,
+ data: Option<PinnedBuf>,
+) -> CliOpResult {
+ assert!(data.is_none());
let seconds = state.start_time.elapsed().as_secs();
let mut subsec_nanos = state.start_time.elapsed().subsec_nanos();
let reduced_time_precision = 2_000_000; // 2ms in nanoseconds
@@ -23,8 +27,22 @@ pub fn op_now(
subsec_nanos -= subsec_nanos % reduced_time_precision
}
- Ok(JsonOp::Sync(json!({
- "seconds": seconds,
- "subsecNanos": subsec_nanos,
- })))
+ let builder = &mut FlatBufferBuilder::new();
+ let inner = msg::NowRes::create(
+ builder,
+ &msg::NowResArgs {
+ seconds,
+ subsec_nanos,
+ },
+ );
+
+ ok_buf(serialize_response(
+ base.cmd_id(),
+ builder,
+ msg::BaseArgs {
+ inner: Some(inner.as_union_value()),
+ inner_type: msg::Any::NowRes,
+ ..Default::default()
+ },
+ ))
}