You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
939 B
54 lines
939 B
#!/usr/bin/env bash
|
|
|
|
gen_impl() {
|
|
local len=$1
|
|
cat <<-END
|
|
impl<T: Default> Array for [T; $len] {
|
|
type Item = T;
|
|
const CAPACITY: usize = $len;
|
|
|
|
#[inline(always)]
|
|
#[must_use]
|
|
fn as_slice(&self) -> &[T] {
|
|
&*self
|
|
}
|
|
|
|
#[inline(always)]
|
|
#[must_use]
|
|
fn as_slice_mut(&mut self) -> &mut [T] {
|
|
&mut *self
|
|
}
|
|
|
|
#[inline(always)]
|
|
fn default() -> Self {
|
|
[
|
|
$(for ((i = 0; i < $len; i += 6))
|
|
do
|
|
echo -n ' '
|
|
for ((j = 0; j < 6 && j + i < $len; j++))
|
|
do
|
|
echo -n ' T::default(),'
|
|
done
|
|
echo
|
|
done)
|
|
]
|
|
}
|
|
}
|
|
|
|
END
|
|
}
|
|
|
|
cat <<-END
|
|
// Generated file, to regenerate run
|
|
// ./gen-array-impls.sh > src/array/generated_impl.rs
|
|
// from the repo root
|
|
|
|
use super::Array;
|
|
|
|
$(for ((i = 0; i <= 33; i++)); do gen_impl $i; done)
|
|
|
|
$(for ((i = 64; i <= 4096; i *= 2)); do gen_impl $i; done)
|
|
END
|
|
|
|
# vim: noet
|