Skip to content

Commit 4259b50

Browse files
committed
perf: ReplaceSource stream_chunks
1 parent 6f24f39 commit 4259b50

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

src/replace_source.rs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,6 @@ impl<T: Source> StreamChunks for ReplaceSource<T> {
325325
&mut |chunk, mut mapping| {
326326
// SAFETY: final_source is false in ReplaceSource
327327
let chunk = chunk.unwrap();
328-
let chunk_with_indices = WithIndices::new(chunk);
329328
let mut chunk_pos = 0;
330329
let end_pos = pos + chunk.len() as u32;
331330
// Skip over when it has been replaced
@@ -357,7 +356,7 @@ impl<T: Source> StreamChunks for ReplaceSource<T> {
357356
original.source_index,
358357
original.original_line,
359358
original.original_column,
360-
chunk_with_indices.substring(0, chunk_pos as usize),
359+
&chunk[0..chunk_pos as usize]
361360
)
362361
}) {
363362
original.original_column += chunk_pos;
@@ -381,8 +380,7 @@ impl<T: Source> StreamChunks for ReplaceSource<T> {
381380
if next_replacement_pos > pos {
382381
// Emit chunk until replacement
383382
let offset = next_replacement_pos - pos;
384-
let chunk_slice = chunk_with_indices
385-
.substring(chunk_pos as usize, (chunk_pos + offset) as usize);
383+
let chunk_slice = &chunk[chunk_pos as usize..(chunk_pos + offset) as usize];
386384
on_chunk(
387385
Some(chunk_slice),
388386
Mapping {
@@ -533,10 +531,7 @@ impl<T: Source> StreamChunks for ReplaceSource<T> {
533531
original.source_index,
534532
original.original_line,
535533
original.original_column,
536-
chunk_with_indices.substring(
537-
chunk_pos as usize,
538-
(chunk_pos + offset as u32) as usize,
539-
),
534+
&chunk[chunk_pos as usize..(chunk_pos + offset as u32) as usize]
540535
)
541536
})
542537
{
@@ -559,7 +554,7 @@ impl<T: Source> StreamChunks for ReplaceSource<T> {
559554
let chunk_slice = if chunk_pos == 0 {
560555
chunk
561556
} else {
562-
chunk_with_indices.substring(chunk_pos as usize, usize::MAX)
557+
&chunk[chunk_pos as usize..]
563558
};
564559
let line = mapping.generated_line as i64 + generated_line_offset;
565560
on_chunk(

0 commit comments

Comments
 (0)