session-ios/SignalUtilitiesKit/Utilities/NSSet+Functional.m

33 lines
748 B
Objective-C

#import "NSSet+Functional.h"
@implementation NSSet (Functional)
- (BOOL)contains:(BOOL (^)(id))predicate {
for (id object in self) {
BOOL isPredicateSatisfied = predicate(object);
if (isPredicateSatisfied) { return YES; }
}
return NO;
}
- (NSSet *)filtered:(BOOL (^)(id))isIncluded {
NSMutableSet *result = [NSMutableSet new];
for (id object in self) {
if (isIncluded(object)) {
[result addObject:object];
}
}
return result;
}
- (NSSet *)map:(id (^)(id))transform {
NSMutableSet *result = [NSMutableSet new];
for (id object in self) {
id transformedObject = transform(object);
[result addObject:transformedObject];
}
return result;
}
@end