From 334ceab2b0b34d18a81834333515c58474d925cc Mon Sep 17 00:00:00 2001 From: Alexey Galakhov Date: Fri, 10 Mar 2017 03:53:51 +0100 Subject: [PATCH] protocol: less strict trait requirements --- src/protocol/mod.rs | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/protocol/mod.rs b/src/protocol/mod.rs index c8ddccf..efe0d40 100644 --- a/src/protocol/mod.rs +++ b/src/protocol/mod.rs @@ -40,10 +40,7 @@ pub struct WebSocket { pong: Option, } -impl WebSocket - where Stream: Read + Write -{ - +impl WebSocket { /// Convert a raw socket into a WebSocket without performing a handshake. pub fn from_raw_socket(stream: Stream, role: Role) -> Self { WebSocket::from_frame_socket(FrameSocket::new(stream), role) @@ -54,6 +51,20 @@ impl WebSocket WebSocket::from_frame_socket(FrameSocket::from_partially_read(stream, part), role) } + /// Convert a frame socket into a WebSocket. + fn from_frame_socket(socket: FrameSocket, role: Role) -> Self { + WebSocket { + role: role, + socket: socket, + state: WebSocketState::Active, + incomplete: None, + send_queue: VecDeque::new(), + pong: None, + } + } +} + +impl WebSocket { /// Read a message from stream, if possible. /// /// This function sends pong and close responses automatically. @@ -141,18 +152,6 @@ impl WebSocket } } - /// Convert a frame socket into a WebSocket. - fn from_frame_socket(socket: FrameSocket, role: Role) -> Self { - WebSocket { - role: role, - socket: socket, - state: WebSocketState::Active, - incomplete: None, - send_queue: VecDeque::new(), - pong: None, - } - } - /// Try to decode one message frame. May return None. fn read_message_frame(&mut self) -> Result> { if let Some(mut frame) = self.socket.read_frame()? {