| # Porting process |
| |
| ## Acceptance criteria |
| |
| - Previously used `//src/lib/fidl/rust`, now uses `//src/lib/fidl/rust_next` |
| - Previously used `fidl_fuchsia_<FIDL name>` crates, now uses `fidl_next_fuchsia_<FIDL name>` |
| |
| ## Necessary changes |
| |
| - Add `//src/lib/fidl/rust_next/fidl_next` as a dependency |
| - Add your porting target to the allowlist in `//src/lib/fidl/rust_next/fidl_next/BUILD.gn` |
| - Look for `# NOTE: this library is still experimental` visibility list |
| - Add `enable_rust_next` to the FIDL targets you're using |
| |
| ## Examples |
| |
| Compare: |
| - Current bindings: `//examples/fidl/calculator/rust` |
| - New bindings: `//examples/fidl/calculator/rust_next` |
| - FIDL file: `//examples/fidl/calculator/fidl/calculator.test.fidl` |
| - Build file: `//examples/fidl/calculator/fidl/BUILD.gn` |
| |
| ## New bindings documentation |
| |
| - Overall crate: `https://fuchsia-docs.firebaseapp.com/rust/fidl_next/index.html` |
| - This is what you want to depend on, it re-exports the separate pieces of the FIDL bindings (codec, protocol, type-safe bindings helpers) |
| - Codec docs: `https://fuchsia-docs.firebaseapp.com/rust/fidl_next_codec/index.html` |
| - Has an explanation of how the codec layer is structured |
| - Protocol docs: `https://fuchsia-docs.firebaseapp.com/rust/fidl_next_protocol/index.html` |
| - Has an explanation of how the protocol layer is structured |