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