Giordani L. Rust Projects. Write A Redis Clone.... -
fn parse_integer(&mut self) -> Result<Option<RespValue>, String> "Invalid integer")?; self.buffer.advance(bytes_read); Ok(Some(RespValue::Integer(num)))
pub fn del(&self, key: &str) -> bool self.inner.lock().unwrap().remove(key).is_some() Giordani L. Rust Projects. Write a Redis Clone....
match self.buffer[0] as char { '*' => self.parse_array(), '+' => self.parse_simple_string(), '-' => self.parse_error(), ':' => self.parse_integer(), '$' => self.parse_bulk_string(), _ => Err(format!("Invalid RESP type: {}", self.buffer[0] as char)), } } fn parse_integer(&mut self) ->
> DEL mykey (integer) 1
pub fn expire(&self, key: &str, ttl_secs: u64) -> bool let mut map = self.inner.lock().unwrap(); if let Some(value) = map.get_mut(key) let expires_at = SystemTime::now() .duration_since(UNIX_EPOCH) .unwrap() .as_millis() as u64 + (ttl_secs * 1000); value.expires_at = Some(expires_at); true else false Ok(Some(RespValue::Integer(num))) pub fn del(&self
let key = match &args[0] RespValue::BulkString(Some(k)) => String::from_utf8_lossy(k).to_string(), _ => return RespValue::Error("ERR invalid key".to_string()), ;
fn parse_bulk_string(&mut self) -> Result<Option<RespValue>, String> _