pub(crate) unsafe fn validate_formats<T, U, F>(
    ptr: *const T,
    num: usize,
    f: F
) -> Result<Vec<U>>where
    F: FnMut(&T) -> Result<U>,