| #!/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 |