IGListKit/Source/IGListDiffKit/IGListDiff.h
Tim Oliver 98bd6c6a74 Fix the SPM build errors caused by removal of unprefixed headers (#1644)
Summary:
It looks like D86316341 caused the GitHub unit tests to stop passing since SPM relies on IGListKit and IGListDiffKit being in the same directory so there are no module imports.

This diff adds the same `__has_include` conditional checking so our internal and external module configurations will both work.

Pull Request resolved: https://github.com/instagram/IGListKit/pull/1644

Test Plan:
The external tests are working again. As long as the internal tests also pass, we should be good!

 {F1983488354}

Reviewed By: m3rlin45

Differential Revision: D86943807

Pulled By: TimOliver

fbshipit-source-id: c741acbb1f8425e92834daec720d4be3b3c264da
2025-11-17 00:08:32 -08:00

69 lines
2.3 KiB
Objective-C

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import <Foundation/Foundation.h>
#if !__has_include(<IGListDiffKit/IGListDiffKit.h>)
#import "IGListDiffable.h"
#import "IGListIndexPathResult.h"
#import "IGListIndexSetResult.h"
#else
#import <IGListDiffKit/IGListDiffable.h>
#import <IGListDiffKit/IGListIndexPathResult.h>
#import <IGListDiffKit/IGListIndexSetResult.h>
#endif
NS_ASSUME_NONNULL_BEGIN
/**
An option for how to do comparisons between similar objects.
*/
NS_SWIFT_NAME(ListDiffOption)
typedef NS_ENUM(NSInteger, IGListDiffOption) {
/**
Compare objects using pointer personality.
*/
IGListDiffPointerPersonality,
/**
Compare objects using `-[IGListDiffable isEqualToDiffableObject:]`.
*/
IGListDiffEquality
};
/**
Creates a diff using indexes between two collections.
@param oldArray The old objects to diff against.
@param newArray The new objects.
@param option An option on how to compare objects.
@return A result object containing affected indexes.
*/
NS_SWIFT_NAME(ListDiff(oldArray:newArray:option:))
FOUNDATION_EXTERN IGListIndexSetResult *IGListDiff(NSArray<id<IGListDiffable>> *_Nullable oldArray,
NSArray<id<IGListDiffable>> *_Nullable newArray,
IGListDiffOption option);
/**
Creates a diff using index paths between two collections.
@param fromSection The old section.
@param toSection The new section.
@param oldArray The old objects to diff against.
@param newArray The new objects.
@param option An option on how to compare objects.
@return A result object containing affected indexes.
*/
NS_SWIFT_NAME(ListDiffPaths(fromSection:toSection:oldArray:newArray:option:))
FOUNDATION_EXTERN IGListIndexPathResult *IGListDiffPaths(NSInteger fromSection,
NSInteger toSection,
NSArray<id<IGListDiffable>> *_Nullable oldArray,
NSArray<id<IGListDiffable>> *_Nullable newArray,
IGListDiffOption option);
NS_ASSUME_NONNULL_END