mirror of
https://github.com/Instagram/IGListKit
synced 2026-04-21 21:47:34 +00:00
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
69 lines
2.3 KiB
Objective-C
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
|