Skip to content

Commit 0ac0616

Browse files
authored
perf: buffer by to_writer (#165)
1 parent ed6fa44 commit 0ac0616

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

src/cached_source.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,9 @@ impl<T: Source + Hash + PartialEq + Eq + 'static> Source for CachedSource<T> {
8282
}
8383

8484
fn buffer(&self) -> Cow<[u8]> {
85-
self.inner.buffer()
85+
let mut buffer = vec![];
86+
self.to_writer(&mut buffer).unwrap();
87+
Cow::Owned(buffer)
8688
}
8789

8890
fn size(&self) -> usize {

src/concat_source.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,9 @@ impl Source for ConcatSource {
141141
if children.len() == 1 {
142142
children[0].buffer()
143143
} else {
144-
let all = children
145-
.iter()
146-
.map(|child| child.buffer())
147-
.collect::<Vec<_>>()
148-
.concat();
149-
Cow::Owned(all)
144+
let mut buffer = vec![];
145+
self.to_writer(&mut buffer).unwrap();
146+
Cow::Owned(buffer)
150147
}
151148
}
152149

0 commit comments

Comments
 (0)