From 47c8d55efc3df96f42f7f2f5c6dd34ffc39a0483 Mon Sep 17 00:00:00 2001 From: Kai Schmidt Date: Tue, 12 Mar 2024 12:13:35 -0700 Subject: [PATCH] Make `EcoVec::extend_from_trusted` public Add the bound `I::IntoIter: ExactSizeIterator` to try to prevent unsafe usage. --- src/vec.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vec.rs b/src/vec.rs index a1c5848..80a5e9f 100644 --- a/src/vec.rs +++ b/src/vec.rs @@ -686,10 +686,12 @@ impl EcoVec { impl EcoVec { /// Clones and pushes all elements in a trusted-len iterator to the vector. /// + /// # Safety /// The iterator must produce exactly `count` items. - unsafe fn extend_from_trusted(&mut self, count: usize, iter: I) + pub unsafe fn extend_from_trusted(&mut self, count: usize, iter: I) where I: IntoIterator, + I::IntoIter: ExactSizeIterator, { if count == 0 { return;