Skip to content

Conversation

@FSMaxB
Copy link
Contributor

@FSMaxB FSMaxB commented Sep 27, 2021

Currently the Message type is a bit hard to work with as can be seen here: https://github.com/communityvi/communityvi/blob/26bfbe16c8c4dc46545edeebf96d2b3aed8887ab/communityvi-server/src/utils/websocket_message_conversion.rs#L4-L33

While looking at the code I also happened to notice the comment about non-exhaustive enum:

warp/src/filters/ws.rs

Lines 267 to 274 in 9e74ff9

/// A WebSocket message.
///
/// This will likely become a `non-exhaustive` enum in the future, once that
/// language feature has stabilized.
#[derive(Eq, PartialEq, Clone)]
pub struct Message {
inner: protocol::Message,
}

It would of course be best for usability/interoperability if warp used tungstenite::protocol::Message directly. I assume the opaque Message type was introduced to allow for changes in the underlying implementation, without breaking warp's API?

This pull request contains 2 commits:

  1. Convert Message into a non-exhaustive enum without breaking the existing API
  2. Add From for tungstenite::protocol::Message in both directions. This doesn't break the API, but it exposes the respective version of the tungstenite::protocol::Message, making any future update of the tungstenite dependency a potentially breaking change. If that is undesired, I can remove this second commit.

@FSMaxB FSMaxB force-pushed the non-exhaustive-websocket-message branch from a9f7ee5 to 1ce802b Compare September 27, 2021 12:19
@FSMaxB
Copy link
Contributor Author

FSMaxB commented Sep 27, 2021

Rebased to fix formatting

@jxs
Copy link
Collaborator

jxs commented Sep 30, 2021

Hi, and thanks for your interest! There is already #821 on the pipeline

@FSMaxB
Copy link
Contributor Author

FSMaxB commented Sep 30, 2021

Sorry for not doing due diligence and checking for existing pull requests.

How should I proceed? Close this in favor of the existing pull request? I've noticed that there hasn't been any progress in the original pull request for several months.

@jxs
Copy link
Collaborator

jxs commented Sep 30, 2021

no worries! :) yeah I was just noticing that as well, and this one already addresses my review on the other and uses From<protocol::Message> which is cleaner LGTM!

@jxs jxs requested a review from seanmonstar September 30, 2021 20:39
@jxs jxs added the waiting-on-reviewer Awaiting review from the assignee but also interested parties. label Sep 30, 2021
@mvolfik
Copy link

mvolfik commented Mar 30, 2022

Sorry for bumping, but is there anything I could do to help get this merged?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-on-reviewer Awaiting review from the assignee but also interested parties.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants