Skip to content

refuse a streamed body on a service that also rides the bus - #294

Merged
eburgos merged 1 commit into
masterfrom
stream-amqp-guard
Sep 6, 2026
Merged

eburgos merged 1 commit into
masterfrom
stream-amqp-guard

Conversation

@eburgos

@eburgos eburgos commented Sep 6, 2026

Copy link
Copy Markdown
Owner

The stream sibling of the multipart guard: a body = "stream" operation on a service also asking for amqp_rpc refuses at expansion — spanned on the operation, combined with the multipart guard's errors, message naming both ways out. Probe-verified: without the guard the declaration compiles and the failure only appears when the AMQP dispatcher macro is invoked, as an unhelpful double-fired E0277 on StreamedAnswer: Serialize. Boundary token-verified: stream-free dual-transport and stream-only http_rest services expand unchanged.

Gate: just lint, just test-named-features (47 doctests incl. the new compile_fail), all-features clippy green.

A streamed answer has no serialization the bus wire can carry;
without a guard the declaration compiled and the failure surfaced
only when the amqp dispatcher was invoked, as rustc's own trait-bound
error naming neither the operation nor the transport nor the reason.
The refusal now lands at the seam where transports and bindings are
both known, spanned on the operation, combined with the multipart
guard's own errors so a service tripping both is told about each.
@eburgos
eburgos merged commit d0527bf into master Sep 6, 2026
@eburgos
eburgos deleted the stream-amqp-guard branch September 6, 2026 04:10
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