message.rs 720 B

12345678910111213141516171819202122232425
  1. use actix::Message;
  2. use bytes::Bytes;
  3. use flowy_collaboration::entities::ws_data::ServerRevisionWSData;
  4. use lib_ws::{WSChannel, WebSocketRawMessage};
  5. use std::convert::TryInto;
  6. #[derive(Debug, Message, Clone)]
  7. #[rtype(result = "()")]
  8. pub struct WebSocketMessage(pub Bytes);
  9. impl std::ops::Deref for WebSocketMessage {
  10. type Target = Bytes;
  11. fn deref(&self) -> &Self::Target { &self.0 }
  12. }
  13. pub fn revision_data_to_ws_message(data: ServerRevisionWSData, channel: WSChannel) -> WebSocketMessage {
  14. let bytes: Bytes = data.try_into().unwrap();
  15. let msg = WebSocketRawMessage {
  16. channel,
  17. data: bytes.to_vec(),
  18. };
  19. let bytes: Bytes = msg.try_into().unwrap();
  20. WebSocketMessage(bytes)
  21. }