pub(crate) fn cast_view_to_interval<F, ArrowType>( array: &dyn Array, cast_options: &CastOptions<'_>, parse_function: F, ) -> Result<ArrayRef, ArrowError>where ArrowType: ArrowPrimitiveType, F: Fn(&str) -> Result<ArrowType::Native, ArrowError> + Copy,