]> git.lizzy.rs Git - rust.git/blob - library/core/src/slice/specialize.rs
Merge commit 'cb7915b00c235e9b5861564f3be78dba330980ee' into clippyup
[rust.git] / library / core / src / slice / specialize.rs
1 pub(super) trait SpecFill<T> {
2     fn spec_fill(&mut self, value: T);
3 }
4
5 impl<T: Clone> SpecFill<T> for [T] {
6     default fn spec_fill(&mut self, value: T) {
7         if let Some((last, elems)) = self.split_last_mut() {
8             for el in elems {
9                 el.clone_from(&value);
10             }
11
12             *last = value
13         }
14     }
15 }
16
17 impl<T: Copy> SpecFill<T> for [T] {
18     fn spec_fill(&mut self, value: T) {
19         for item in self.iter_mut() {
20             *item = value;
21         }
22     }
23 }