From a7456f6c0d73a64ed7880f2d56df2d07262335c2 Mon Sep 17 00:00:00 2001 From: Abid Omar Date: Fri, 17 Oct 2025 22:22:39 +0800 Subject: [PATCH] feat: add Send+Sync+Display traits to KvError --- worker/src/kv/mod.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/worker/src/kv/mod.rs b/worker/src/kv/mod.rs index 209d9b7d5..af49b66a9 100644 --- a/worker/src/kv/mod.rs +++ b/worker/src/kv/mod.rs @@ -173,6 +173,21 @@ pub enum KvError { InvalidKvStore(String), } +unsafe impl Send for KvError {} +unsafe impl Sync for KvError {} + +impl std::fmt::Display for KvError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + KvError::JavaScript(value) => write!(f, "js error: {value:?}"), + KvError::Serialization(e) => write!(f, "unable to serialize/deserialize: {e}"), + KvError::InvalidKvStore(binding) => write!(f, "invalid kv store: {binding}"), + } + } +} + +impl std::error::Error for KvError {} + impl From for JsValue { fn from(val: KvError) -> Self { match val {