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

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


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

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

  private var state: State = .idle

