use crate::px_error;
use fastly::kv_store::KVStoreError;
use fastly::KVStore;
pub trait KVStoreGetExt {
fn get(&self, key: &str) -> Option<String>;
}
impl KVStoreGetExt for KVStore {
fn get(&self, key: &str) -> Option<String> {
match self.lookup(key) {
Ok(mut response) => match String::from_utf8(response.take_body_bytes()) {
Ok(value) => Some(value),
Err(e) => {
px_error!("KVStore value for key {:?} is not valid UTF-8: {}", key, e);
None
}
},
Err(KVStoreError::ItemNotFound) => None,
Err(e) => {
px_error!("KVStore lookup failed for key {:?}: {:?}", key, e);
None
}
}
}
}