Struct Connection

Source
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

Source

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.

Source

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.

Source

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

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.