bytecodealliance / bytecodealliance/wit-bindgen

[rust-macro] generate! should allow defering handling exports to dependent crates

Offen
#674 2 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Rust
Sterne
1.5k
Forks
288
Ø Merge
6 Std. 32 Min.
Gemergte PRs (30 T.)
19

Beschreibung

See discussion here: https://bytecodealliance.zulipchat.com/#narrow/stream/327223-wit-bindgen/topic/external.20export.20implementations/near/387677837

I also want this feature. It kind of used to exist with the old export macro approach that was replaced when resource type support was added. You used to be able to have one library crate that called `generate!` and exported the "export" macro to any dependent crates who could then bind the exports of the world. When resource types were added the API changed to force the invoker of `generate!` to specify what interfaces it was exporting and implement them right then and there (at least that's my understanding).

As @alexcrichton mentioned wastime's `bindgen!` macro lets you do something like this already with more sophisticated macro parameters. Perhaps this approach could be applied here too.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Lies zuerst die verlinkte Zulip-Diskussion und vergleiche dann das hier beschriebene Verhalten des rust-macro `generate!` mit dem Makro `bindgen!` von wastime. Das Feature ist vollständig, wenn ein Library-Crate `generate!` aufrufen kann und abhängige Crates die Verarbeitung von Exporten aufschieben und die Exporte der Welt binden können.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust, wasm
Bereich
developer-experience, tooling
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
20/100

Neue Issues direkt in Ihr Postfach

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