From 05f373ed30e7fc130744f805adbbeb40efbf78f1 Mon Sep 17 00:00:00 2001 From: Dan Kaplun Date: Thu, 5 Apr 2018 22:24:19 -0400 Subject: [PATCH] pub fn from_elem(elem: A::Item, n: usize) -> Self where A::Item: Clone --- lib.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib.rs b/lib.rs index c498cb0..d2ba0ca 100644 --- a/lib.rs +++ b/lib.rs @@ -747,6 +747,19 @@ impl SmallVec where A::Item: Clone { self.truncate(len); } } + + /// Creates a `SmallVec` with `n` copies of `elem`. + /// ``` + /// use smallvec::SmallVec; + /// + /// let v = SmallVec::<[char; 128]>::from_elem('d', 2); + /// assert_eq!(v, SmallVec::from_buf(['d', 'd'])); + /// ``` + pub fn from_elem(elem: A::Item, n: usize) -> Self { + let mut v = SmallVec::with_capacity(n); + v.insert_many(0, (0..n).map(|_| elem.clone())); + v + } } impl ops::Deref for SmallVec {