From 1a6c70684ce5deaf687b38a763943b72f4ab9436 Mon Sep 17 00:00:00 2001 From: Dmitry Dodzin Date: Wed, 18 Jun 2025 21:34:56 +0300 Subject: [PATCH] Switch unescape to unescaper --- Cargo.lock | 11 +++++++---- Cargo.toml | 2 +- src/error.rs | 2 ++ src/transform/value.rs | 6 +++--- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c1e1aa9..4cdb37c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -639,7 +639,7 @@ dependencies = [ "serde_json", "sha256", "thiserror", - "unescape", + "unescaper", "url", "uuid", ] @@ -1260,10 +1260,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] -name = "unescape" -version = "0.1.0" +name = "unescaper" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" +checksum = "c01d12e3a56a4432a8b436f293c25f4808bdf9e9f9f98f9260bba1f1bc5a1f26" +dependencies = [ + "thiserror", +] [[package]] name = "unicase" diff --git a/Cargo.toml b/Cargo.toml index 419319a..13b3a9b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,7 @@ serde = "1" serde_json = "1" sha256 = "1" thiserror = "2" -unescape = "0.1" +unescaper = "0.1" url = { version = "2", features = ["serde"] } uuid = { version = "1", features = ["v4"] } diff --git a/src/error.rs b/src/error.rs index f44c0c9..08516b2 100644 --- a/src/error.rs +++ b/src/error.rs @@ -22,6 +22,8 @@ pub enum JsltError { #[error("Could not fit index into u64")] IndexOutOfRange, #[error(transparent)] + Unescape(unescaper::Error), + #[error(transparent)] SerdeJson(#[from] serde_json::Error), #[error("{0}")] RuntimeError(String), diff --git a/src/transform/value.rs b/src/transform/value.rs index 5d797a9..79da220 100644 --- a/src/transform/value.rs +++ b/src/transform/value.rs @@ -153,9 +153,9 @@ impl FromPairs for StringTransformer { let rule = inner.as_rule(); if matches!(rule, Rule::Inner) { - Ok(StringTransformer( - unescape::unescape(inner.as_str()).unwrap_or_default(), - )) + unescaper::unescape(inner.as_str()) + .map(StringTransformer) + .map_err(JsltError::Unescape) } else { Err(JsltError::UnexpectedInput( Rule::String,