aboutsummaryrefslogtreecommitdiffstats
path: root/crates/configuration/src/state/cache_key.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/configuration/src/state/cache_key.rs')
-rw-r--r--crates/configuration/src/state/cache_key.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/crates/configuration/src/state/cache_key.rs b/crates/configuration/src/state/cache_key.rs
new file mode 100644
index 0000000..a63b15d
--- /dev/null
+++ b/crates/configuration/src/state/cache_key.rs
@@ -0,0 +1,21 @@
+use warden_stack::redis::ToRedisArgs;
+
+#[derive(Clone, Copy, Debug)]
+pub enum CacheKey<'a> {
+ ActiveRouting,
+ Routing(&'a uuid::Uuid),
+}
+
+impl ToRedisArgs for CacheKey<'_> {
+ fn write_redis_args<W>(&self, out: &mut W)
+ where
+ W: ?Sized + warden_stack::redis::RedisWrite,
+ {
+ let value = match self {
+ CacheKey::ActiveRouting => "routing.active".into(),
+ CacheKey::Routing(uuid) => format!("routing.{uuid}"),
+ };
+
+ out.write_arg(value.as_bytes());
+ }
+}