in src/entrystore/src/seg/memcache.rs [88:139]
fn set(&mut self, set: &Set) -> Response {
let ttl = set.ttl().get().unwrap_or(0);
if ttl < 0 {
// immediate expire maps to a delete
self.data.delete(set.key());
Response::stored(set.noreply())
} else if let Ok(s) = std::str::from_utf8(set.value()) {
if let Ok(v) = s.parse::<u64>() {
if self
.data
.insert(
set.key(),
v,
Some(&set.flags().to_be_bytes()),
Duration::from_secs(ttl as u64),
)
.is_ok()
{
Response::stored(set.noreply())
} else {
Response::server_error("")
}
} else if self
.data
.insert(
set.key(),
set.value(),
Some(&set.flags().to_be_bytes()),
Duration::from_secs(ttl as u64),
)
.is_ok()
{
Response::stored(set.noreply())
} else {
Response::server_error("")
}
} else if self
.data
.insert(
set.key(),
set.value(),
Some(&set.flags().to_be_bytes()),
Duration::from_secs(ttl as u64),
)
.is_ok()
{
Response::stored(set.noreply())
} else {
Response::server_error("")
}
}