code: public static <T> TypeSerializerSnapshot<T> readSerializerSnapshot(
  			DataInputView in,
  			ClassLoader userCodeClassLoader,
  			@Nullable TypeSerializer<T> existingPriorSerializer) throws IOException {
  
  		final TypeSerializerSnapshotSerializationProxy<T> proxy =
  			new TypeSerializerSnapshotSerializationProxy<>(userCodeClassLoader, existingPriorSerializer);
  		proxy.read(in);
  
  		return proxy.getSerializerSnapshot();
  	}
docs: Reads from a data input view a {@link TypeSerializerSnapshot} that was previously
  written using {@link TypeSerializerSnapshotSerializationUtil#writeSerializerSnapshot(DataOutputView, TypeSerializerSnapshot, TypeSerializer)}.
  
  @param in the data input view
  @param userCodeClassLoader the user code class loader to use
  @param existingPriorSerializer the prior serializer. This would only be non-null if we are
  restoring from a snapshot taken with Flink version <= 1.6.
  
  @return the read serializer configuration snapshot