   /// - Parameter item:
   /// - Returns:
   public func indexPath(of item: T) -> IndexPath? {
-    guard let index = items.index(where: { $0.differenceIdentifier == item.differenceIdentifier }) else { return nil }
+    guard let index = items.firstIndex(where: { $0.differenceIdentifier == item.differenceIdentifier }) else { return nil }
     return IndexPath(item: index, section: displayingSection)
   }
 
   public func indexPath(of `where`: (T) -> Bool) -> IndexPath? {
-    guard let index = items.index(where:`where`) else { return nil }
+    guard let index = items.firstIndex(where:`where`) else { return nil }
     return IndexPath(item: index, section: displayingSection)
   }
 }

  /// - Returns:
  public func item(at indexPath: IndexPath) -> T? {
    guard let index = toIndex(from: indexPath) else { return nil }
    return snapshot[index]
  }



  private(set) public var items: [T] = []

  private(set) public var snapshot: [T] = []

  private var state: State = .idle

