Skip to content

Commit c32bf5d

Browse files
committed
Update to the 2024 edition
1 parent 8f23554 commit c32bf5d

20 files changed

+164
-147
lines changed

Cargo.toml

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[package]
22
name = "crop"
33
version = "0.4.2"
4-
edition = "2021"
5-
rust-version = "1.65"
4+
edition = "2024"
5+
rust-version = "1.85"
66
authors = ["Riccardo Mazzarini <[email protected]>"]
77
description = "A pretty fast text rope"
88
documentation = "https://docs.rs/crop"
@@ -11,7 +11,13 @@ readme = "README.md"
1111
license = "MIT"
1212
keywords = ["rope", "tree", "edit", "buffer"]
1313
categories = ["data-structures", "text-editors", "text-processing"]
14-
exclude = ["/.github/*", "/examples/**", "/fuzz/**", "/tests/**", "/BENCHMARKS.md"]
14+
exclude = [
15+
"/.github/*",
16+
"/examples/**",
17+
"/fuzz/**",
18+
"/tests/**",
19+
"/BENCHMARKS.md",
20+
]
1521

1622
[package.metadata.docs.rs]
1723
features = ["graphemes", "simd", "utf16-metric"]

benches/creation.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ mod common;
22

33
use common::{LARGE, MEDIUM, SMALL, TINY};
44
use criterion::measurement::WallTime;
5-
use criterion::{criterion_group, criterion_main, BenchmarkGroup, Criterion};
5+
use criterion::{BenchmarkGroup, Criterion, criterion_group, criterion_main};
66
use crop::{Rope, RopeBuilder};
77

88
fn bench<F: Fn(&str)>(group: &mut BenchmarkGroup<WallTime>, to_bench: F) {

benches/editing.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
mod common;
22

3-
use common::{PercentRanges, LARGE, MEDIUM, SMALL, TINY};
3+
use common::{LARGE, MEDIUM, PercentRanges, SMALL, TINY};
44
use criterion::measurement::WallTime;
55
use criterion::{
6-
criterion_group,
7-
criterion_main,
86
Bencher,
97
BenchmarkGroup,
108
Criterion,
9+
criterion_group,
10+
criterion_main,
1111
};
1212
use crop::Rope;
1313

benches/graphemes.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
mod common;
22

33
use common::{LARGE, MEDIUM, SMALL, TINY};
4-
use criterion::{criterion_group, criterion_main, Criterion};
4+
use criterion::{Criterion, criterion_group, criterion_main};
55
use crop::Rope;
66

77
fn iter_graphemes(c: &mut Criterion) {

benches/iterators.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
mod common;
22

33
use common::{LARGE, MEDIUM, SMALL, TINY};
4-
use criterion::{criterion_group, criterion_main, Criterion};
5-
use crop::{iter::*, Rope};
4+
use criterion::{Criterion, criterion_group, criterion_main};
5+
use crop::{Rope, iter::*};
66

77
#[macro_export]
88
macro_rules! iter_bench {

benches/metric_conversion.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
mod common;
22

33
use common::{LARGE, MEDIUM, SMALL, TINY};
4-
use criterion::{criterion_group, criterion_main, Bencher, Criterion};
4+
use criterion::{Bencher, Criterion, criterion_group, criterion_main};
55
use crop::Rope;
66

77
fn line_of_byte(c: &mut Criterion) {

benches/slicing.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
mod common;
22

3-
use common::{PercentRanges, LARGE, MEDIUM, SMALL, TINY};
3+
use common::{LARGE, MEDIUM, PercentRanges, SMALL, TINY};
44
use criterion::{
5-
criterion_group,
6-
criterion_main,
75
BatchSize,
86
Bencher,
97
Criterion,
8+
criterion_group,
9+
criterion_main,
1010
};
1111
use crop::Rope;
1212

src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -166,13 +166,13 @@ pub mod tree;
166166

167167
// These are not part of the public API, we only export them to be able to run
168168
// doctests.
169+
pub use rope::{Rope, RopeBuilder, RopeSlice};
169170
#[doc(hidden)]
170171
pub use rope::{
171172
gap_buffer::GapBuffer,
172173
gap_slice::GapSlice,
173174
metrics::ChunkSummary,
174175
};
175-
pub use rope::{Rope, RopeBuilder, RopeSlice};
176176

177177
#[inline]
178178
pub(crate) fn range_bounds_to_start_end<T, B>(

src/rope/gap_slice.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ impl<'a> GapSlice<'a> {
339339
return (
340340
self.left_chunk().as_bytes(),
341341
self.right_chunk().as_bytes(),
342-
)
342+
);
343343
},
344344
};
345345

src/rope/rope.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
use alloc::string::String;
22
use core::ops::RangeBounds;
33

4+
use super::RopeSlice;
45
use super::gap_buffer::GapBuffer;
56
use super::iterators::{Bytes, Chars, Chunks, Lines, RawLines};
67
use super::metrics::{ByteMetric, RawLineMetric};
78
use super::utils::{panic_messages as panic, *};
8-
use super::RopeSlice;
99
use crate::range_bounds_to_start_end;
1010
use crate::tree::Tree;
1111

src/rope/rope_builder.rs

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
use super::Rope;
12
use super::gap_buffer::GapBuffer;
23
use super::metrics::ChunkSummary;
34
use super::rope::RopeChunk;
45
use super::utils::split_adjusted;
5-
use super::Rope;
66
use crate::tree::TreeBuilder;
77

88
/// An incremental [`Rope`](crate::Rope) builder.
@@ -41,11 +41,7 @@ fn gap_buffer_push_with_remainder<'a, const MAX_BYTES: usize>(
4141

4242
*buffer_len_left += push.len();
4343

44-
if rest.is_empty() {
45-
None
46-
} else {
47-
Some(rest)
48-
}
44+
if rest.is_empty() { None } else { Some(rest) }
4945
}
5046

5147
impl RopeBuilder {

src/rope/rope_slice.rs

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
use alloc::string::String;
22
use core::ops::RangeBounds;
33

4+
use super::Rope;
45
use super::iterators::{Bytes, Chars, Chunks, Lines, RawLines};
56
use super::metrics::{ByteMetric, RawLineMetric};
67
use super::rope::RopeChunk;
78
use super::utils::{panic_messages as panic, *};
8-
use super::Rope;
99
use crate::range_bounds_to_start_end;
1010
use crate::tree::TreeSlice;
1111

@@ -619,11 +619,9 @@ impl<'a> RopeSlice<'a> {
619619
/// Panics if this slice doesn't have a trailing line break.
620620
#[inline]
621621
pub(super) fn truncate_trailing_line_break(&mut self) {
622-
debug_assert!(self
623-
.tree_slice
624-
.end_slice()
625-
.last_chunk()
626-
.ends_with('\n'));
622+
debug_assert!(
623+
self.tree_slice.end_slice().last_chunk().ends_with('\n')
624+
);
627625

628626
self.truncate_last_char();
629627

src/tree/leaves.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,7 @@ impl<'a, const N: usize, L: Leaf> LeavesBackward<'a, N, L> {
598598

599599
#[cfg(test)]
600600
mod tests {
601-
use rand::{thread_rng, Rng};
601+
use rand::{Rng, thread_rng};
602602

603603
use super::*;
604604

src/tree/node_internal.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -711,7 +711,7 @@ impl<const N: usize, L: Leaf> Inode<N, L> {
711711
&mut self,
712712
mut child_offset: usize,
713713
children: I,
714-
) -> Option<impl ExactSizeIterator<Item = Self>>
714+
) -> Option<impl ExactSizeIterator<Item = Self> + use<I, N, L>>
715715
where
716716
I: IntoIterator<Item = Arc<Node<N, L>>>,
717717
I::IntoIter: ExactSizeIterator,
@@ -737,10 +737,9 @@ impl<const N: usize, L: Leaf> Inode<N, L> {
737737
);
738738

739739
while self.is_underfilled() {
740-
let next = if let Some(next) = children.next() {
741-
next
742-
} else {
743-
last_children.next().unwrap()
740+
let next = match children.next() {
741+
Some(next) => next,
742+
_ => last_children.next().unwrap(),
744743
};
745744
self.push(next);
746745
}

src/tree/node_leaf.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ impl<L: Leaf> Lnode<L> {
100100
&mut self,
101101
range: R,
102102
replace_with: L::Replacement<'_>,
103-
) -> Option<impl ExactSizeIterator<Item = Self>>
103+
) -> Option<impl ExactSizeIterator<Item = Self> + use<M, R, L>>
104104
where
105105
M: Metric<L::Summary>,
106106
R: RangeBounds<M>,

src/tree/tiny_arc.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
77
use alloc::boxed::Box;
88
use core::mem::MaybeUninit;
9-
use core::ptr::{addr_of_mut, NonNull};
9+
use core::ptr::{NonNull, addr_of_mut};
1010
use core::sync::atomic;
1111

1212
/// A tiny `Arc` without weak references.
@@ -39,7 +39,7 @@ impl<T> Arc<T> {
3939

4040
#[inline]
4141
pub(super) unsafe fn get_mut_unchecked(this: &mut Self) -> &mut T {
42-
&mut this.ptr.as_mut().data
42+
unsafe { &mut this.ptr.as_mut().data }
4343
}
4444

4545
#[inline]

0 commit comments

Comments
 (0)