mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Implement RCTConvertOptionalVecToArray(const folly::Optional<ContainerT> &vec)
Summary:
There are two implementations of `RCTConvertVecToArray`. The first implementation:
```
template<typename ContainerT>
NSArray *RCTConvertVecToArray(const ContainerT &vec, id (^convertor)(typename ContainerT::value_type element))
{
NSMutableArray *array = [NSMutableArray new];
for (size_t i = 0, size = vec.size(); i < size; ++i) {
id object = convertor(vec[i]);
array[i] = object ?: (id)kCFNull;
}
return array;
}
```
The purpose of the second implementation is to default the convertor function to the identify function:
```
template<typename ContainerT>
NSArray *RCTConvertVecToArray(const ContainerT &vec)
{
return RCTConvertVecToArray(vec, ^id(typename ContainerT::value_type element) { return element; });
}
```
Meanwhile, there's only one implementation of `RCTConvertOptionalVecToArray`:
```
template<typename ContainerT>
NSArray *RCTConvertOptionalVecToArray(const folly::Optional<ContainerT> &vec, id (^convertor)(typename ContainerT::value_type element))
{
return vec.hasValue() ? RCTConvertVecToArray(vec.value(), convertor) : nil;
}
```
In this diff, I overload `RCTConvertOptionalVecToArray` to default the convertor to the identify function.
Changelog:
[iOS][Added] - Added RCTConvertOptionalVecToArray with default converter
Reviewed By: PeteTheHeat
Differential Revision: D18148891
fbshipit-source-id: d7d5f05cda06c9fa5374334ec4e9dbbd8b6d2eba
This commit is contained in:
committed by
Facebook Github Bot
parent
3beb8341fd
commit
c29ec64d94
@@ -40,6 +40,12 @@ NSArray *RCTConvertOptionalVecToArray(const folly::Optional<ContainerT> &vec, id
|
||||
return vec.hasValue() ? RCTConvertVecToArray(vec.value(), convertor) : nil;
|
||||
}
|
||||
|
||||
template<typename ContainerT>
|
||||
NSArray *RCTConvertOptionalVecToArray(const folly::Optional<ContainerT> &vec)
|
||||
{
|
||||
return vec.hasValue() ? RCTConvertVecToArray(vec.value(), ^id(typename ContainerT::value_type element) { return element; }) : nil;
|
||||
}
|
||||
|
||||
bool RCTBridgingToBool(id value);
|
||||
folly::Optional<bool> RCTBridgingToOptionalBool(id value);
|
||||
NSString *RCTBridgingToString(id value);
|
||||
|
||||
Reference in New Issue
Block a user