Build Redis With Rust π¦
Day 3 μ½λ command.rs use crate::{Config, Db, ValueEntry}; use tokio::io::AsyncWriteExt; use tokio::net::TcpStream; pub enum Command { PING, ECHO(String), GET(String), SET { key: String, value: String, px: Option<u64>, ex: Option<u64> }, CONFIG(ConfigCommand), } pub enum ConfigCommand { GET(String), } impl Command { pub fn parse_message(message: &str) -> Result<Command, String> { let mut lines = message.lines(); let first_line = lines.next().ok_or("Argument Error : Empty message")?; if first_line.starts_with('*') { let num_args: usize = first_line[1..].parse().map_err(|_| "Invalid array size")?...