macro_rules! impl_expire_ops {
(
prefix = $prefix:ident,
meta_type = $meta_type:ty
) => {
::paste::paste! {
#[inline]
pub fn [<$prefix expireat>]<K: AsRef<[u8]>>(&self, key: K, expire_at_ms: u64) -> $crate::error::Result<bool> {
self.expireat_generic::<$meta_type>(key.as_ref(), expire_at_ms)
}
#[inline]
pub fn [<$prefix expire>]<K: AsRef<[u8]>>(&self, key: K, seconds: u64) -> $crate::error::Result<bool> {
let ms = $crate::meta::current_now_ms().saturating_add(seconds.saturating_mul(1000));
self.[<$prefix expireat>](key, ms)
}
#[inline]
pub fn [<$prefix pexpireat>]<K: AsRef<[u8]>>(&self, key: K, expire_at_ms: u64) -> $crate::error::Result<bool> {
self.[<$prefix expireat>](key, expire_at_ms)
}
#[inline]
pub fn [<$prefix pexpire>]<K: AsRef<[u8]>>(&self, key: K, milliseconds: u64) -> $crate::error::Result<bool> {
let ms = $crate::meta::current_now_ms().saturating_add(milliseconds);
self.[<$prefix expireat>](key, ms)
}
#[inline]
pub fn [<$prefix ttl>]<K: AsRef<[u8]>>(&self, key: K) -> $crate::error::Result<i64> {
self.ttl_generic::<$meta_type>(key.as_ref())
}
#[inline]
pub fn [<$prefix pttl>]<K: AsRef<[u8]>>(&self, key: K) -> $crate::error::Result<i64> {
self.pttl_generic::<$meta_type>(key.as_ref())
}
#[inline]
pub fn [<$prefix expiretime>]<K: AsRef<[u8]>>(&self, key: K) -> $crate::error::Result<i64> {
self.expiretime_generic::<$meta_type>(key.as_ref())
}
#[inline]
pub fn [<$prefix pexpiretime>]<K: AsRef<[u8]>>(&self, key: K) -> $crate::error::Result<i64> {
self.pexpiretime_generic::<$meta_type>(key.as_ref())
}
#[inline]
pub fn [<$prefix persist>]<K: AsRef<[u8]>>(&self, key: K) -> $crate::error::Result<bool> {
self.persist_generic::<$meta_type>(key.as_ref())
}
}
};
}