use redis::{ToRedisArgs, ToSingleRedisArg}; #[derive(Clone, Copy)] pub enum CacheKey<'a> { Session(&'a str), } impl CacheKey<'_> { pub fn key(&self) -> &str { match self { CacheKey::Session(_) => "session:*", } } } impl ToRedisArgs for CacheKey<'_> { fn write_redis_args(&self, out: &mut W) where W: ?Sized + redis::RedisWrite, { out.write_arg_fmt(match self { CacheKey::Session(id) => format!("session:{id}"), }) } } impl ToSingleRedisArg for CacheKey<'_> {}