pub struct Connection { /* private fields */ }
Expand description
Represents a connection bewteen the client and the Redis server.
The connecton wraps a TCP stream and a buffer for reading and writing Frames.
To read Frames, the connection waits asynchronously until there is enough data to parse a Frame. On success, it deserializes the bytes into a Frame and returns it to the client.
To write Frames, the connection serializes the Frame into bytes and writes it to the stream. It then flushes the stream to ensure the data is sent to the server.
Implementations§
Source§impl Connection
impl Connection
Sourcepub fn new(stream: TcpStream) -> Self
pub fn new(stream: TcpStream) -> Self
Creates a new connection from a TCP stream. The stream is wrapped in a write buffer. It also initializes a read buffer for reading from the TCP stream. The read buffer is 4kb.
Sourcepub async fn read_frame(&mut self) -> Result<Option<Frame>>
pub async fn read_frame(&mut self) -> Result<Option<Frame>>
Reads a single Redis Frame from the TCP stream.
The method reads from the stream into the buffer until it has a complete Frame. It then parses the Frame and returns it to the client.
§Returns
An Option containing the Frame if it was successfully read and parsed. None if the Frame is incomplete and more data is needed.
Sourcepub async fn write_frame(&mut self, frame: &Frame) -> Result<()>
pub async fn write_frame(&mut self, frame: &Frame) -> Result<()>
Writes a single Redis Frame to the TCP stream.
The method serializes the Frame into bytes and writes it to the stream. It then flushes the stream to ensure the data is sent to the server.
§Arguments
frame
- A reference to the Frame to be written to the stream
§Returns
A Result indicating success or failure