fn read_list<T>( data: &mut Cursor<&[u8]>, read_value: impl FnMut(&mut Cursor<&[u8]>) -> Result<T>, ) -> Result<Vec<T>>