Movies
Movies
Reviews
Reviews
Awards
Awards
Mods
Mods
3dmm.com
3dmm.com
About
About
Stats
Stats
Uploader
Uploader
Links
Links

Giordani L. Rust Projects. Write A Redis Clone.... Review

fn handle_ping(_args: &[RespValue]) -> RespValue RespValue::SimpleString("PONG".to_string())

let original_buffer = self.buffer.clone(); let temp_buffer = &mut self.buffer[offset..].to_vec(); let mut temp_parser = RespParser buffer: BytesMut::from(temp_buffer.as_slice()), ; match temp_parser.parse_one()? Some(value) => let consumed = original_buffer.len() - temp_parser.buffer.len() - offset; Ok(Some((value, consumed))) None => Ok(None),

let server = Server::new(listener, store); server.run().await?; Giordani L. Rust Projects. Write a Redis Clone....

> SET mykey "Hello World" OK

impl Default for Store fn default() -> Self Self::new() fn handle_ping(_args: &[RespValue]) -&gt

> GET mykey "Hello World"

let value = match &args[1] RespValue::BulkString(Some(v)) => v.clone(), _ => return RespValue::Error("ERR invalid value".to_string()), ; let temp_buffer = &mut self.buffer[offset..].to_vec()

impl RespParser { pub fn new() -> Self Self buffer: BytesMut::new(),

fn handle_get(store: &Store, args: &[RespValue]) -> RespValue if args.len() != 1 return RespValue::Error("ERR wrong number of arguments for 'get' command".to_string());

impl Server { pub fn new(listener: TcpListener, store: Store) -> Self Self listener, store

fn parse_one(&mut self) -> Result<Option<RespValue>, String> { if self.buffer.is_empty() return Ok(None);


3dmm.com

Powered by vBulletin
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.