code: public static <T> TypeAdapter<T> nullSafeClone(@NonNull final TypeAdapter<T> delegate) {
      return new TypeAdapter<T>() {
        @Nullable @Override public T readFromParcel(@NonNull Parcel source) {
          return readNullable(source, delegate);
        }
  
        @Override public void writeToParcel(@Nullable T value, @NonNull Parcel dest, int flags) {
          writeNullable(value, dest, flags, delegate);
        }
      };
    }
docs: Returns a type adapter equal to this type adapter, but with support for reading and writing
  {@code null} values.