code: public static <A extends ModelAdapter<Model, Item>, Model, Item extends IItem> A set(final A adapter, final List<Item> items, final DiffCallback<Item> callback, final boolean detectMoves) {
          DiffUtil.DiffResult result = calculateDiff(adapter, items, callback, detectMoves);
          return set(adapter, result);
      }
docs: Calculates a {@link androidx.recyclerview.widget.DiffUtil.DiffResult} given the adapter and the items, and will directly dispatch them to the adapter.
  
  @param adapter     the adapter containing the current items.
  @param items       the new set of items we want to put into the adapter
  @param callback    the callback used to implement the required checks to identify changes of items.
  @param detectMoves configuration for the {@link DiffUtil#calculateDiff(DiffUtil.Callback, boolean)} method
  @param <A>         The adapter type, whereas A extends {@link ModelAdapter}
  @param <Model>     The model type we work with
  @param <Item>      The item type kept in the adapter
  @return the adapter to allow chaining