Skip to content

Commit dc7ca9a

Browse files
committed
r: Use wit_bindgen_rust in build.rs
1 parent d60df2a commit dc7ca9a

17 files changed

Lines changed: 159 additions & 43 deletions

File tree

Cargo.lock

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ serde = { version = "1.0", features = ["derive"] }
3434
serde_json = "1.0"
3535
sha2 = "0.10.9"
3636
wit-bindgen = "0.50.0"
37+
wit-bindgen-rust = "0.50.0"
38+
wit-parser = "0.243.0"
3739
wstd = "0.6.3"
3840

3941
[profile.release]

activity/db/turso/Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,8 @@ wstd.workspace = true
2222

2323
[dev-dependencies]
2424
rand.workspace = true
25+
26+
[build-dependencies]
27+
anyhow.workspace = true
28+
wit-bindgen-rust.workspace = true
29+
wit-parser.workspace = true

activity/db/turso/build.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
use anyhow::Result;
2+
use wit_bindgen_rust::Opts;
3+
4+
fn main() -> Result<()> {
5+
println!("cargo:rerun-if-changed=wit/");
6+
Opts {
7+
generate_all: true,
8+
additional_derive_attributes: vec!["PartialEq".to_string()],
9+
..Default::default()
10+
}
11+
.build()
12+
.generate_to_out_dir(None)?;
13+
Ok(())
14+
}

activity/db/turso/src/lib.rs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11
mod turso;
22

3-
use crate::exports::stargazers::db::llm::Guest as LlmGuest;
4-
use crate::exports::stargazers::db::user::Guest as UserGuest;
5-
use exports::stargazers::db::user::{Ordering, Stargazer};
3+
use generated::export;
4+
use generated::exports::stargazers::db::llm::Guest as LlmGuest;
5+
use generated::exports::stargazers::db::user::Guest as UserGuest;
6+
use generated::exports::stargazers::db::user::{Ordering, Stargazer};
67
use humantime::format_rfc3339_millis;
78
use std::time::SystemTime;
89
use turso::request::{NamedArg, PipelineAction, PipelineRequest, Stmt};
910
use turso::response::{QueryResult, Response, extract_first_value_from_nth_response};
1011
use turso::{TursoClient, TursoValue};
11-
use wit_bindgen::generate;
1212
use wstd::runtime::block_on;
1313

1414
pub const ENV_TURSO_TOKEN: &str = "TURSO_TOKEN";
1515
pub const ENV_TURSO_LOCATION: &str = "TURSO_LOCATION";
1616

17-
generate!({ generate_all, additional_derives: [PartialEq] });
18-
pub(crate) struct Component;
19-
export!(Component);
17+
mod generated {
18+
#![allow(clippy::empty_line_after_outer_attr)]
19+
include!(concat!(env!("OUT_DIR"), "/any.rs"));
20+
}
21+
22+
struct Component;
23+
export!(Component with_types_in generated);
2024

2125
impl LlmGuest for Component {
2226
fn get_settings_json() -> Result<String, String> {
@@ -410,7 +414,7 @@ fn process_resp_list_stargazers(
410414
#[cfg(test)]
411415
mod tests {
412416
use crate::{
413-
exports::stargazers::db::user::Stargazer,
417+
generated::exports::stargazers::db::user::Stargazer,
414418
process_resp_list_stargazers,
415419
turso::{
416420
TursoValue,
@@ -687,10 +691,8 @@ mod tests {
687691

688692
use crate::{
689693
Component, ENV_TURSO_LOCATION, ENV_TURSO_TOKEN,
690-
exports::stargazers::db::{
691-
llm::Guest as _,
692-
user::{Guest as _, Ordering, Stargazer},
693-
},
694+
generated::exports::stargazers::db::llm::Guest as _,
695+
generated::exports::stargazers::db::user::{Guest as _, Ordering, Stargazer},
694696
turso::{
695697
TursoClient, TursoValue,
696698
request::{NamedArg, PipelineAction, PipelineRequest, Stmt},

activity/github/impl/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@ wstd.workspace = true
2121

2222
[build-dependencies]
2323
cynic-codegen.workspace = true
24+
anyhow.workspace = true
25+
wit-bindgen-rust.workspace = true
26+
wit-parser.workspace = true

activity/github/impl/build.rs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
1-
fn main() {
1+
use anyhow::Result;
2+
use wit_bindgen_rust::Opts;
3+
4+
fn main() -> Result<()> {
5+
println!("cargo:rerun-if-changed=wit/");
6+
Opts {
7+
generate_all: true,
8+
..Default::default()
9+
}
10+
.build()
11+
.generate_to_out_dir(None)?;
12+
213
cynic_codegen::register_schema("github")
3-
.from_sdl_file("graphql/github.graphql")
4-
.unwrap()
5-
.as_default()
6-
.unwrap();
14+
.from_sdl_file("graphql/github.graphql")?
15+
.as_default()?;
16+
Ok(())
717
}

activity/github/impl/src/lib.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
use crate::exports::stargazers::github::account::Guest;
21
use cynic::GraphQlResponse;
3-
use exports::stargazers::github::account::Stargazers;
2+
use generated::export;
3+
use generated::exports::stargazers::github::account::Guest;
4+
use generated::exports::stargazers::github::account::Stargazers;
45
use serde::Serialize;
56
use stargazers::{
67
QueryStargazers, QueryStargazersVariables, Repository, StargazerConnection, StargazerEdge,
78
UniformResourceLocatable,
89
};
9-
use wit_bindgen::generate;
1010
use wstd::{
1111
http::{Body, Client, Method, Request, StatusCode},
1212
runtime::block_on,
@@ -15,9 +15,13 @@ mod stargazers;
1515

1616
const ENV_GITHUB_TOKEN: &str = "GITHUB_TOKEN";
1717

18-
generate!({ generate_all });
19-
pub(crate) struct Component;
20-
export!(Component);
18+
mod generated {
19+
#![allow(clippy::empty_line_after_outer_attr)]
20+
include!(concat!(env!("OUT_DIR"), "/any.rs"));
21+
}
22+
23+
struct Component;
24+
export!(Component with_types_in generated);
2125

2226
#[derive(Debug, serde::Serialize)]
2327
#[serde(rename_all = "camelCase")]
@@ -161,7 +165,7 @@ pub struct UserArguments {
161165
#[cfg(test)]
162166
mod tests {
163167
use crate::Component;
164-
use crate::exports::stargazers::github::account::Guest;
168+
use crate::generated::exports::stargazers::github::account::Guest;
165169
use crate::{ENV_GITHUB_TOKEN, extract_stargazers, stargazers::QueryStargazers};
166170
use cynic::GraphQlResponse;
167171

activity/llm/openai/Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,8 @@ serde.workspace = true
1717
serde_json.workspace = true
1818
wit-bindgen.workspace = true
1919
wstd.workspace = true
20+
21+
[build-dependencies]
22+
anyhow.workspace = true
23+
wit-bindgen-rust.workspace = true
24+
wit-parser.workspace = true

activity/llm/openai/build.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
use anyhow::Result;
2+
use wit_bindgen_rust::Opts;
3+
4+
fn main() -> Result<()> {
5+
println!("cargo:rerun-if-changed=wit/");
6+
Opts {
7+
generate_all: true,
8+
..Default::default()
9+
}
10+
.build()
11+
.generate_to_out_dir(None)?;
12+
Ok(())
13+
}

0 commit comments

Comments
 (0)