Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(util): introduce channel::Sender::try_send() #146

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

cratelyn
Copy link
Contributor

@cratelyn cratelyn commented Feb 9, 2025

pr #140 introduced a new channel-backed body. this body provides an equivalent to the defunct hyper::Body::channel() interface that was exposed in hyper 0.14, and removed in the 1.0 major release.

the previous Sender type also included a useful method, try_send_data(), which allows a thread to synchronously attempt to send data outside of an asynchronous context.

https://docs.rs/hyper/0.14.31/hyper/body/struct.Sender.html#method.try_send_data

this commit introduces a loosely equivalent Sender::try_send() method to provide users of http-body-util with a means to send Frame<T> values outside of an asynchronous context, without potentially scheduling the caller to be woken later or yielding should the channel be full.

this function accepts a Frame<D> rather than a chunk of data, to fit in with the shift towards frame-oriented interfaces in http-body and http-body-util.

pr hyperium#140 introduced a new channel-backed body. this body provides a new
equivalent to the defunct `hyper::Body::channel()` interface that was
exposed in hyper 0.14, and removed in the 1.0 major release.

the previous `Sender` type also included a useful method,
`try_send_data()`, which allows a thread to _synchronously_ attempt to
send data _outside_ of an asynchronous context.

<https://docs.rs/hyper/0.14.31/hyper/body/struct.Sender.html#method.try_send_data>

this commit introduces a loosely equivalent `Sender::try_send()` method
to provide users of `http-body-util` with a means to send `Frame<T>`
values outside of an asynchronous context, without potentially
scheduling the caller to be woken later or yielding should the channel
be full.

this function accepts a `Frame<D>` rather than a chunk of data, to fit
in with the shift towards frame-oriented interfaces in `http-body` and
`http-body-util`.

Signed-off-by: katelyn martin <[email protected]>
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