in src/protocol/resp/src/request/set.rs [168:213]
fn from(other: &SetRequest) -> Message {
let mut v = vec![
Message::bulk_string(b"SET"),
Message::BulkString(BulkString::from(other.key.clone())),
Message::BulkString(BulkString::from(other.value.clone())),
];
match other.expire_time {
Some(ExpireTime::Seconds(s)) => {
v.push(Message::bulk_string(b"EX"));
v.push(Message::bulk_string(format!("{}", s).as_bytes()));
}
Some(ExpireTime::Milliseconds(ms)) => {
v.push(Message::bulk_string(b"PX"));
v.push(Message::bulk_string(format!("{}", ms).as_bytes()));
}
Some(ExpireTime::UnixSeconds(s)) => {
v.push(Message::bulk_string(b"EXAT"));
v.push(Message::bulk_string(format!("{}", s).as_bytes()));
}
Some(ExpireTime::UnixMilliseconds(ms)) => {
v.push(Message::bulk_string(b"PXAT"));
v.push(Message::bulk_string(format!("{}", ms).as_bytes()));
}
Some(ExpireTime::KeepTtl) => {
v.push(Message::bulk_string(b"KEEPTTL"));
}
None => {}
}
match other.mode {
SetMode::Add => {
v.push(Message::bulk_string(b"NX"));
}
SetMode::Replace => {
v.push(Message::bulk_string(b"XX"));
}
SetMode::Set => {}
}
if other.get_old {
v.push(Message::bulk_string(b"GET"));
}
Message::Array(Array { inner: Some(v) })
}