summaryrefslogtreecommitdiff
path: root/serde_v8/examples/basic.rs
diff options
context:
space:
mode:
Diffstat (limited to 'serde_v8/examples/basic.rs')
-rw-r--r--serde_v8/examples/basic.rs61
1 files changed, 0 insertions, 61 deletions
diff --git a/serde_v8/examples/basic.rs b/serde_v8/examples/basic.rs
deleted file mode 100644
index 29fb98085..000000000
--- a/serde_v8/examples/basic.rs
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
-use serde::Deserialize;
-
-#[derive(Debug, Deserialize)]
-struct MathOp {
- pub a: u64,
- pub b: u64,
- pub operator: Option<String>,
-}
-
-fn main() {
- let platform = v8::new_default_platform(0, false).make_shared();
- v8::V8::initialize_platform(platform);
- v8::V8::initialize();
-
- {
- let isolate = &mut v8::Isolate::new(v8::CreateParams::default());
- let handle_scope = &mut v8::HandleScope::new(isolate);
- let context = v8::Context::new(handle_scope);
- let scope = &mut v8::ContextScope::new(handle_scope, context);
-
- fn exec<'s>(
- scope: &mut v8::HandleScope<'s>,
- src: &str,
- ) -> v8::Local<'s, v8::Value> {
- let code = v8::String::new(scope, src).unwrap();
- let script = v8::Script::compile(scope, code, None).unwrap();
- script.run(scope).unwrap()
- }
-
- let v = exec(scope, "32");
- let x32: u64 = serde_v8::from_v8(scope, v).unwrap();
- println!("x32 = {x32}");
-
- let v = exec(scope, "({a: 1, b: 3, c: 'ignored'})");
- let mop: MathOp = serde_v8::from_v8(scope, v).unwrap();
- println!(
- "mop = {{ a: {}, b: {}, operator: {:?} }}",
- mop.a, mop.b, mop.operator
- );
-
- let v = exec(scope, "[1,2,3,4,5]");
- let arr: Vec<u64> = serde_v8::from_v8(scope, v).unwrap();
- println!("arr = {arr:?}");
-
- let v = exec(scope, "['hello', 'world']");
- let hi: Vec<String> = serde_v8::from_v8(scope, v).unwrap();
- println!("hi = {hi:?}");
-
- let v: v8::Local<v8::Value> = v8::Number::new(scope, 12345.0).into();
- let x: f64 = serde_v8::from_v8(scope, v).unwrap();
- println!("x = {x}");
- }
-
- // SAFETY: all isolates have been destroyed, so we can now safely let V8 clean
- // up its resources.
- unsafe {
- v8::V8::dispose();
- }
- v8::V8::dispose_platform();
-}