bytecodealliance / bytecodealliance/wit-bindgen

Allow generating public modules for Rust on import

Offen
#289 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
gen-rust
Vorherrschende Sprache
Rust
Sterne
1.5k
Forks
286
Ø Merge
6 Std. 32 Min.
Gemergte PRs (30 T.)
19

Beschreibung

Right now, if you generate Rust-import, you get this:
```rust
#[allow(clippy::all)]
mod input {
```

If you generate wasmtime-import, you get this:
```rust
#[allow(clippy::all)]
pub mod input {
```

Ideally, there'd be an option to make the former generate like the latter (e.g. with `pub mod` instead of `mod`), or they would both be `pub mod` by default.

With the modules being private, I can't expose them to user code using their original names. I'd use `wit_bindgen_wasmtime::import` to sidestep this, but I encounter build issues:
```
error[E0425]: cannot find function `lock` in module `os`
--> .cargo/registry/src/github.com-1ecc6299db9ec823/region-2.2.0/src/lock.rs:30:7
|
30 | os::lock(
| ^^^^ not found in `os`
|
help: consider importing this function
|
1 | use lock;
|
help: if you import `lock`, refer to it directly
|
30 - os::lock(
30 + lock(
|

error[E0425]: cannot find function `unlock` in module `os`
--> .cargo/registry/src/github.com-1ecc6299db9ec823/region-2.2.0/src/lock.rs:60:7
|
60 | os::unlock(
| ^^^^^^ not found in `os`
|
help: consider importing this function
|
1 | use unlock;
|
help: if you import `unlock`, refer to it directly
|
60 - os::unlock(
60 + unlock(
|

error[E0425]: cannot find function `page_size` in module `os`
--> .cargo/registry/src/github.com-1ecc6299db9ec823/region-2.2.0/src/page.rs:16:39
|
16 | INIT.call_once(|| PAGE_SIZE = os::page_size());
| ^^^^^^^^^ not found in `os`

error[E0425]: cannot find function `set_protection` in module `os`
--> .cargo/registry/src/github.com-1ecc6299db9ec823/region-2.2.0/src/protect.rs:48:7
|
48 | os::set_protection(
| ^^^^^^^^^^^^^^ not found in `os`

error[E0425]: cannot find function `get_region` in module `os`
--> .cargo/registry/src/github.com-1ecc6299db9ec823/region-2.2.0/src/lib.rs:133:7
|
133 | os::get_region(page::floor(address as usize) as *const u8)
| ^^^^^^^^^^ not found in `os`
```

(I also don't know which one I'm supposed to use for a Wasmtime export and a Rust guest, anyway)

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Finde den Pfad zur Rust-Generierung von Imports, der `mod input` ausgibt, und vergleiche ihn mit dem `wasmtime-import`-Pfad, der `pub mod input` ausgibt. Kläre das beabsichtigte Verhalten für Wasmtime-Exporte und Rust-Gäste und überprüfe anschließend die gewählte Option oder den Standardwert anhand der relevanten Generator-Tests und der generierten Ausgabe.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust, wasm
Bereich
tooling
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.