Skip to content

Commit e442c37

Browse files
Allow passing an iterable to splice_children
1 parent e2d2e93 commit e442c37

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/api.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,12 @@ impl<L: Language> SyntaxNode<L> {
255255
self.raw.detach()
256256
}
257257

258-
pub fn splice_children(&self, to_delete: Range<usize>, to_insert: Vec<SyntaxElement<L>>) {
259-
let to_insert = to_insert.into_iter().map(cursor::SyntaxElement::from).collect::<Vec<_>>();
258+
pub fn splice_children<I: IntoIterator<Item = SyntaxElement<L>>>(
259+
&self,
260+
to_delete: Range<usize>,
261+
to_insert: I,
262+
) {
263+
let to_insert = to_insert.into_iter().map(cursor::SyntaxElement::from);
260264
self.raw.splice_children(to_delete, to_insert)
261265
}
262266
}

src/cursor.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,11 @@ impl SyntaxNode {
806806
})
807807
}
808808

809-
pub fn splice_children(&self, to_delete: Range<usize>, to_insert: Vec<SyntaxElement>) {
809+
pub fn splice_children<I: IntoIterator<Item = SyntaxElement>>(
810+
&self,
811+
to_delete: Range<usize>,
812+
to_insert: I,
813+
) {
810814
assert!(self.data().mutable, "immutable tree: {}", self);
811815
for (i, child) in self.children_with_tokens().enumerate() {
812816
if to_delete.contains(&i) {

0 commit comments

Comments
 (0)