Swiftgram/SSignalKit/SSignal+Mapping.m
2015-06-13 02:21:22 +03:00

41 lines
900 B
Objective-C

#import "SSignal+Mapping.h"
@implementation SSignal (Mapping)
- (SSignal *)map:(id (^)(id))f
{
return [[SSignal alloc] initWithGenerator:^id<SDisposable> (SSubscriber *subscriber)
{
return [self startWithNext:^(id next)
{
[subscriber putNext:f(next)];
} error:^(id error)
{
[subscriber putError:error];
} completed:^
{
[subscriber putCompletion];
}];
}];
}
- (SSignal *)filter:(bool (^)(id))f
{
return [[SSignal alloc] initWithGenerator:^id<SDisposable> (SSubscriber *subscriber)
{
return [self startWithNext:^(id next)
{
if (f(next))
[subscriber putNext:next];
} error:^(id error)
{
[subscriber putError:error];
} completed:^
{
[subscriber putCompletion];
}];
}];
}
@end