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 /serde_v8/examples/basic.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 'serde_v8/examples/basic.rs')
-rw-r--r-- | serde_v8/examples/basic.rs | 61 |
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(); -} |