aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objective-c/RxLibrary/GRXMappingWriter.m
diff options
context:
space:
mode:
authorGravatar Muxi Yan <mxyan@google.com>2018-05-23 17:03:15 -0700
committerGravatar Muxi Yan <mxyan@google.com>2018-05-23 17:03:15 -0700
commit76facd4a7f850ebabcd6e68a544c03a7b3d9af07 (patch)
tree5b4e771e1c40856b7289766d7450770402c76b63 /src/objective-c/RxLibrary/GRXMappingWriter.m
parent515908ba3196d057a8465a146f667b9e6c2ad9f2 (diff)
Move GRXMappingWriter to root directory
Diffstat (limited to 'src/objective-c/RxLibrary/GRXMappingWriter.m')
-rw-r--r--src/objective-c/RxLibrary/GRXMappingWriter.m46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/objective-c/RxLibrary/GRXMappingWriter.m b/src/objective-c/RxLibrary/GRXMappingWriter.m
new file mode 100644
index 0000000000..108ed868a2
--- /dev/null
+++ b/src/objective-c/RxLibrary/GRXMappingWriter.m
@@ -0,0 +1,46 @@
+/*
+ *
+ * Copyright 2015 gRPC authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#import "GRXMappingWriter.h"
+
+@interface GRXForwardingWriter ()<GRXWriteable>
+@end
+
+@implementation GRXMappingWriter {
+ id (^_map)(id value);
+}
+
+- (instancetype)initWithWriter:(GRXWriter *)writer {
+ return [self initWithWriter:writer map:nil];
+}
+
+// Designated initializer
+- (instancetype)initWithWriter:(GRXWriter *)writer map:(id (^)(id value))map {
+ if ((self = [super initWithWriter:writer])) {
+ _map = map ?: ^id(id value) {
+ return value;
+ };
+ }
+ return self;
+}
+
+// Override
+- (void)writeValue:(id)value {
+ [super writeValue:_map(value)];
+}
+@end