chore(spansy): update to use rangeset 0.4 (#81)

This commit is contained in:
dan
2025-12-09 09:59:20 +02:00
committed by GitHub
parent 7ca0b13278
commit 6f1a934bc4
4 changed files with 18 additions and 29 deletions

View File

@@ -11,11 +11,11 @@ default = []
serde = ["dep:serde", "bytes/serde", "rangeset/serde"] serde = ["dep:serde", "bytes/serde", "rangeset/serde"]
[dependencies] [dependencies]
rangeset = { version = "0.3" } rangeset = { version = "0.4" }
bytes.workspace = true bytes = { workspace = true }
serde = { workspace = true, features = ["derive"], optional = true } serde = { workspace = true, features = ["derive"], optional = true }
thiserror.workspace = true thiserror = { workspace = true }
httparse = "1.8" httparse = "1.8"
pest = { version = "2.7" } pest = { version = "2.7" }

View File

@@ -1,6 +1,6 @@
use rangeset::{ use rangeset::{
iter::RangeIterator, iter::RangeIterator,
ops::Difference, ops::Set,
set::{RangeSet, ToRangeSet}, set::{RangeSet, ToRangeSet},
}; };

View File

@@ -2,7 +2,7 @@ use std::ops::{Index, Range};
use rangeset::{ use rangeset::{
iter::RangeIterator, iter::RangeIterator,
ops::Difference, ops::Set,
set::{RangeSet, ToRangeSet}, set::{RangeSet, ToRangeSet},
}; };
@@ -464,9 +464,6 @@ impl_type!(KeyValue, span);
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use rangeset::ops::Index;
use crate::json::parse_str; use crate::json::parse_str;
use super::*; use super::*;
@@ -508,11 +505,9 @@ mod tests {
let indices = value.elems[0].without_value(); let indices = value.elems[0].without_value();
let result: std::string::String = src let result: std::string::String = indices
.as_bytes() .iter_values()
.index(indices.iter_ranges()) .map(|i| src.as_bytes()[i] as char)
.flatten()
.map(|&b| b as char)
.collect(); .collect();
assert_eq!(result, "\"foo\": \"\""); assert_eq!(result, "\"foo\": \"\"");
} }
@@ -527,11 +522,9 @@ mod tests {
let indices = value.elems[0].without_separator(); let indices = value.elems[0].without_separator();
let result: std::string::String = src let result: std::string::String = indices
.as_bytes() .iter_values()
.index(indices.iter_ranges()) .map(|i| src.as_bytes()[i] as char)
.flatten()
.map(|&b| b as char)
.collect(); .collect();
assert_eq!(result, "\"foo\": \"bar\""); assert_eq!(result, "\"foo\": \"bar\"");
} }
@@ -546,11 +539,9 @@ mod tests {
let indices = value.without_values(); let indices = value.without_values();
let result: std::string::String = src let result: std::string::String = indices
.as_bytes() .iter_values()
.index(indices.iter_ranges()) .map(|i| src.as_bytes()[i] as char)
.flatten()
.map(|&b| b as char)
.collect(); .collect();
assert_eq!(result, "[]"); assert_eq!(result, "[]");
} }
@@ -565,11 +556,9 @@ mod tests {
let indices = value.without_pairs(); let indices = value.without_pairs();
let result: std::string::String = src let result: std::string::String = indices
.as_bytes() .iter_values()
.index(indices.iter_ranges()) .map(|i| src.as_bytes()[i] as char)
.flatten()
.map(|&b| b as char)
.collect(); .collect();
assert_eq!(result, "{\n}"); assert_eq!(result, "{\n}");
} }

View File

@@ -16,7 +16,7 @@ use super::{types, types::JsonValue};
/// impl<'a> JsonVisit for DigitReplacer<'a, '_> { /// impl<'a> JsonVisit for DigitReplacer<'a, '_> {
/// fn visit_number(&mut self, node: &Number) { /// fn visit_number(&mut self, node: &Number) {
/// let span = node.span(); /// let span = node.span();
/// for range in span.indices().iter_ranges() { /// for range in span.indices().iter() {
/// let replacement = self.digit.repeat(range.len()); /// let replacement = self.digit.repeat(range.len());
/// self.src.replace_range(range, &replacement); /// self.src.replace_range(range, &replacement);
/// } /// }