pub fn copy_rect<T, I, J>( source: &impl Get2D<Item = T>, dest: &mut impl GetMut2D<Item = T>, source_range: RectRange<I>, dest_range: RectRange<J>, ) -> Result<(), IndexError>where T: Clone, I: Num + PartialOrd + ToPrimitive + Copy, J: Num + PartialOrd + ToPrimitive + Copy,