Skip to content

Conversation

@danielvallance
Copy link

@danielvallance danielvallance commented Dec 28, 2025

WIT 'use' statements translate to Rust type aliases in the generated Rust bindings.

Since these aliases may be located at different module paths, creating a StreamPayload or FuturePayload implementation for more than one of these paths will cause the Rust compiler to complain about conflicting trait implementations for the same type.

This commit allows only one StreamPayload or FuturePayload implementation to be generated for a WIT type which will get transpiled into a Rust type alias, and it records mappings of the WIT type to the canonical module path to the type alias, which allows equivalent type aliases to reuse the implementation.

Fixes issue #1432

…ntation per type alias set

WIT 'use' statements translate to Rust type aliases in the generated Rust bindings.

Since these aliases may be located at different module paths, creating a StreamPayload
or FuturePayload implementation for more than one of these paths will cause the Rust compiler
to complain about conflicting trait implementations for the same type.

This commit allows only one StreamPayload or FuturePayload implementation to be generated
for a WIT type which will get transpiled into a Rust type alias, and it records mappings of
the WIT type to the canonical module path to the type alias, which allows equivalent type
aliases to reuse the implementation.

Fixes issue 1432
@danielvallance danielvallance force-pushed the duplicate_stream_impl_fix branch from 81ba43d to 4cac3fc Compare December 28, 2025 17:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant