Skip to content

Commit b0a922b

Browse files
Allow passing an iterable to splice_children
1 parent 73ed5e7 commit b0a922b

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/api.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,12 @@ impl<L: Language> SyntaxNode<L> {
256256
self.raw.detach()
257257
}
258258

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

src/cursor.rs

Lines changed: 5 additions & 1 deletion
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)