diff options
Diffstat (limited to 'Firestore/third_party/Immutable/FSTArraySortedDictionary.h')
-rw-r--r-- | Firestore/third_party/Immutable/FSTArraySortedDictionary.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Firestore/third_party/Immutable/FSTArraySortedDictionary.h b/Firestore/third_party/Immutable/FSTArraySortedDictionary.h new file mode 100644 index 0000000..4b78360 --- /dev/null +++ b/Firestore/third_party/Immutable/FSTArraySortedDictionary.h @@ -0,0 +1,35 @@ +#import <Foundation/Foundation.h> + +#import "FSTImmutableSortedDictionary.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * FSTArraySortedDictionary is an array backed implementation of FSTImmutableSortedDictionary. + * + * You should not use this class directly. You should use FSTImmutableSortedDictionary. + * + * FSTArraySortedDictionary uses arrays and linear lookups to achieve good memory efficiency while + * maintaining good performance for small collections. It also uses fewer allocations than a + * comparable red black tree. To avoid degrading performance with increasing collection size it + * will automatically convert to a FSTTreeSortedDictionary after an insert call above a certain + * threshold. + */ +@interface FSTArraySortedDictionary <KeyType, ValueType> : + FSTImmutableSortedDictionary<KeyType, ValueType> + ++ (FSTArraySortedDictionary<KeyType, ValueType> *) + dictionaryWithDictionary:(NSDictionary<KeyType, ValueType> *)dictionary + comparator:(NSComparator)comparator; + +- (id)init __attribute__((unavailable("Use initWithComparator:keys:values: instead."))); + +- (instancetype)initWithComparator:(NSComparator)comparator; + +- (instancetype)initWithComparator:(NSComparator)comparator + keys:(NSArray<KeyType> *)keys + values:(NSArray<ValueType> *)values NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END |