Skip to content

Commit 5925e60

Browse files
committed
wip
1 parent 1754817 commit 5925e60

File tree

21 files changed

+1903
-833
lines changed

21 files changed

+1903
-833
lines changed

Cargo.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,11 @@ include = [
1818
]
1919

2020
[workspace]
21-
members = ["demo/caller", "demo/wa", "runtime/tests"]
21+
members = ["demo/caller", "demo/wa", "runtime/tests", "jit", "demo/serde"]
22+
23+
[dependencies]
24+
watt-jit = { path = "jit" }
25+
26+
[patch.crates-io]
27+
watt = { path = "." }
28+
serde_derive = { path = "../serde/serde_derive" }

demo/serde/Cargo.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[package]
2+
name = "serde"
3+
version = "0.1.0"
4+
authors = ["Alex Crichton <[email protected]>"]
5+
edition = "2018"
6+
7+
[dependencies]
8+
wa-serde-derive = "0.1"
9+
serde_derive = "1.0"
10+
serde = "1.0"

demo/serde/src/main.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#![allow(dead_code)]
2+
3+
#[derive(wa_serde_derive::Deserialize)]
4+
struct Foo {
5+
a: f32,
6+
b: String,
7+
c: (String, i32),
8+
d: Option<u32>,
9+
e: u128,
10+
f: f64,
11+
}
12+
13+
#[derive(serde_derive::Deserialize)]
14+
struct Bar {
15+
a: f32,
16+
b: String,
17+
c: (String, i32),
18+
d: Option<u32>,
19+
e: u128,
20+
f: f64,
21+
}
22+
23+
fn main() {
24+
println!("Hello, world!");
25+
}

jit/Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[package]
2+
name = "watt-jit"
3+
version = "0.1.0"
4+
authors = ["Alex Crichton <[email protected]>"]
5+
edition = "2018"

jit/src/engine.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use crate::ffi;
2+
3+
#[repr(transparent)]
4+
pub struct Engine {
5+
pub(crate) raw: *mut ffi::wasm_engine_t,
6+
}
7+
8+
impl Engine {
9+
pub fn new() -> Engine {
10+
unsafe {
11+
let raw = ffi::wasm_engine_new();
12+
assert!(!raw.is_null());
13+
Engine { raw }
14+
}
15+
}
16+
}
17+
18+
impl Drop for Engine {
19+
fn drop(&mut self) {
20+
unsafe {
21+
ffi::wasm_engine_delete(self.raw);
22+
}
23+
}
24+
}

0 commit comments

Comments
 (0)