Files
firebase-ios-sdk/Firestore/third_party/Immutable/FSTLLRBEmptyNode.m
T
Gil 4fbc96904f Use fully qualified imports in Firestore (#467)
This simplifies the import process back into google3 and allows us to add additional directories to the project without needing to update the project files for each directory we add. This shows up most clearly in the change to Firestore/Example/Firestore.xcodeproj/project.pbxproj: this no longer needs to list essentially every directory in the project as a header search path.

* Clang-format configuration for C++ files
* Add support C++-only sources to the podspec
* Podspec support for fully qualified imports
* xcodeproj changes for fully-qualified imports
* Use fully-qualified imports in Firestore sources
2017-11-16 20:52:01 -08:00

103 lines
2.1 KiB
Objective-C

#import "Firestore/third_party/Immutable/FSTLLRBEmptyNode.h"
#import "Firestore/third_party/Immutable/FSTLLRBValueNode.h"
NS_ASSUME_NONNULL_BEGIN
@implementation FSTLLRBEmptyNode
- (NSString *)description {
return @"[empty node]";
}
+ (instancetype)emptyNode {
static dispatch_once_t pred = 0;
__strong static id _sharedObject = nil;
dispatch_once(&pred, ^{
_sharedObject = [[self alloc] init]; // or some other init method
});
return _sharedObject;
}
- (nullable id)key {
return nil;
}
- (nullable id)value {
return nil;
}
- (FSTLLRBColor)color {
return FSTLLRBColorUnspecified;
}
- (nullable id<FSTLLRBNode>)left {
return nil;
}
- (nullable id<FSTLLRBNode>)right {
return nil;
}
- (instancetype)copyWith:(id _Nullable)aKey
withValue:(id _Nullable)aValue
withColor:(FSTLLRBColor)aColor
withLeft:(id<FSTLLRBNode> _Nullable)aLeft
withRight:(id<FSTLLRBNode> _Nullable)aRight {
// This class is a singleton anyway, so this is more efficient than calling the constructor again.
return self;
}
- (id<FSTLLRBNode>)insertKey:(id)aKey forValue:(id)aValue withComparator:(NSComparator)aComparator {
FSTLLRBValueNode *result = [[FSTLLRBValueNode alloc] initWithKey:aKey
withValue:aValue
withColor:FSTLLRBColorUnspecified
withLeft:nil
withRight:nil];
return result;
}
- (id<FSTLLRBNode>)remove:(id)key withComparator:(NSComparator)aComparator {
return self;
}
- (NSUInteger)count {
return 0;
}
- (BOOL)isEmpty {
return YES;
}
- (BOOL)inorderTraversal:(BOOL (^)(id key, id value))action {
return NO;
}
- (BOOL)reverseTraversal:(BOOL (^)(id key, id value))action {
return NO;
}
- (id<FSTLLRBNode>)min {
return self;
}
- (nullable id)minKey {
return nil;
}
- (nullable id)maxKey {
return nil;
}
- (BOOL)isRed {
return NO;
}
- (int)check {
return 0;
}
@end
NS_ASSUME_NONNULL_END