| 275 | |
| 276 | impl Runner { |
| 277 | fn rustc(&self, edition: Edition) -> Command { |
| 278 | let state = self.rust_state.as_ref().unwrap(); |
| 279 | let opts = &self.opts.rust; |
| 280 | let mut cmd = Command::new("rustc"); |
| 281 | cmd.arg(match edition { |
| 282 | Edition::E2021 => "--edition=2021", |
| 283 | Edition::E2024 => "--edition=2024", |
| 284 | }) |
| 285 | .arg(&format!( |
| 286 | "--extern=wit_bindgen={}", |
| 287 | state.wit_bindgen_rlib.display() |
| 288 | )) |
| 289 | .arg(&format!( |
| 290 | "--extern=futures={}", |
| 291 | state.futures_rlib.display() |
| 292 | )) |
| 293 | .arg("--target") |
| 294 | .arg(&opts.rust_target) |
| 295 | .arg("-Dwarnings") |
| 296 | .arg("-Cdebuginfo=1"); |
| 297 | for dep in state.wit_bindgen_deps.iter() { |
| 298 | cmd.arg(&format!("-Ldependency={}", dep.display())); |
| 299 | } |
| 300 | cmd |
| 301 | } |
| 302 | |
| 303 | fn produces_component(&self) -> bool { |
| 304 | match self.opts.rust.rust_target.as_str() { |