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