diff options
author | Matt Mastracci <matthew@mastracci.com> | 2023-07-01 18:00:14 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-02 00:00:14 +0000 |
commit | e746b6d80654ba4e4e26370fe6e4f784ce841d92 (patch) | |
tree | 153ffad92a96126b9ab8e906dcdabf7648755931 /core/examples/hello_world.rs | |
parent | b9c0e7cd550ab14fa7da7e33ed87cbeeeb9785a0 (diff) |
refactor(core): Extract deno_core (#19658)
`deno_core` is moving out! You'll find it at
https://github.com/denoland/deno_core/ once this PR lands.
Diffstat (limited to 'core/examples/hello_world.rs')
-rw-r--r-- | core/examples/hello_world.rs | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/core/examples/hello_world.rs b/core/examples/hello_world.rs deleted file mode 100644 index cce6e2218..000000000 --- a/core/examples/hello_world.rs +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. -//! This example shows you how to define ops in Rust and then call them from -//! JavaScript. - -use deno_core::op; -use deno_core::Extension; -use deno_core::JsRuntime; -use deno_core::RuntimeOptions; - -// This is a hack to make the `#[op]` macro work with -// deno_core examples. -// You can remove this: -use deno_core::*; - -#[op] -fn op_sum(nums: Vec<f64>) -> Result<f64, deno_core::error::AnyError> { - // Sum inputs - let sum = nums.iter().fold(0.0, |a, v| a + v); - // return as a Result<f64, AnyError> - Ok(sum) -} - -fn main() { - // Build a deno_core::Extension providing custom ops - let ext = Extension::builder("my_ext") - .ops(vec![ - // An op for summing an array of numbers - // The op-layer automatically deserializes inputs - // and serializes the returned Result & value - op_sum::decl(), - ]) - .build(); - - // Initialize a runtime instance - let mut runtime = JsRuntime::new(RuntimeOptions { - extensions: vec![ext], - ..Default::default() - }); - - // Now we see how to invoke the op we just defined. The runtime automatically - // contains a Deno.core object with several functions for interacting with it. - // You can find its definition in core.js. - runtime - .execute_script_static( - "<usage>", - r#" -// Print helper function, calling Deno.core.print() -function print(value) { - Deno.core.print(value.toString()+"\n"); -} - -const arr = [1, 2, 3]; -print("The sum of"); -print(arr); -print("is"); -print(Deno.core.ops.op_sum(arr)); - -// And incorrect usage -try { - print(Deno.core.ops.op_sum(0)); -} catch(e) { - print('Exception:'); - print(e); -} -"#, - ) - .unwrap(); -} |