summaryrefslogtreecommitdiff
path: root/ext/kv/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/kv/lib.rs')
-rw-r--r--ext/kv/lib.rs18
1 files changed, 14 insertions, 4 deletions
diff --git a/ext/kv/lib.rs b/ext/kv/lib.rs
index 49a59af74..2d4bae6fc 100644
--- a/ext/kv/lib.rs
+++ b/ext/kv/lib.rs
@@ -102,8 +102,8 @@ type KvKey = Vec<AnyValue>;
impl From<AnyValue> for KeyPart {
fn from(value: AnyValue) -> Self {
match value {
- AnyValue::Bool(false) => KeyPart::True,
- AnyValue::Bool(true) => KeyPart::False,
+ AnyValue::Bool(false) => KeyPart::False,
+ AnyValue::Bool(true) => KeyPart::True,
AnyValue::Number(n) => KeyPart::Float(n),
AnyValue::BigInt(n) => KeyPart::Int(n),
AnyValue::String(s) => KeyPart::String(s),
@@ -115,8 +115,8 @@ impl From<AnyValue> for KeyPart {
impl From<KeyPart> for AnyValue {
fn from(value: KeyPart) -> Self {
match value {
- KeyPart::True => AnyValue::Bool(false),
- KeyPart::False => AnyValue::Bool(true),
+ KeyPart::False => AnyValue::Bool(false),
+ KeyPart::True => AnyValue::Bool(true),
KeyPart::Float(n) => AnyValue::Number(n),
KeyPart::Int(n) => AnyValue::BigInt(n),
KeyPart::String(s) => AnyValue::String(s),
@@ -499,6 +499,16 @@ where
resource.db.clone()
};
+ for key in checks
+ .iter()
+ .map(|c| &c.0)
+ .chain(mutations.iter().map(|m| &m.0))
+ {
+ if key.is_empty() {
+ return Err(type_error("key cannot be empty"));
+ }
+ }
+
let checks = checks
.into_iter()
.map(TryInto::try_into)