Commit f8e187f6 authored by Marcus Holland-Moritz's avatar Marcus Holland-Moritz Committed by Dave Watson

Make sure folly::dynamic arrays can be used with folly::gen

Summary:
Define a value_type for folly::dynamic to make arrays work with
folly::gen::from.

Test Plan:
- added new unit test
- fbconfig folly/test && fbmake runtests

Reviewed By: tjackson@fb.com

FB internal diff: D1216358
parent 843b72c0
......@@ -110,6 +110,7 @@ private:
typedef std::vector<dynamic> Array;
public:
typedef Array::const_iterator const_iterator;
typedef dynamic value_type;
struct const_key_iterator;
struct const_value_iterator;
struct const_item_iterator;
......
......@@ -20,6 +20,7 @@
#include "folly/Benchmark.h"
#include "folly/dynamic.h"
#include "folly/gen/Base.h"
#include "folly/json.h"
using folly::dynamic;
......@@ -305,6 +306,13 @@ TEST(Dynamic, GetPtr) {
EXPECT_EQ(dynamic(2), *cobject.get_ptr("two"));
}
TEST(Dynamic, ArrayGenerator) {
// Make sure arrays can be used with folly::gen.
using namespace folly::gen;
dynamic arr { 1, 2, 3, 4 };
EXPECT_EQ(from(arr) | take(3) | member(&dynamic::asInt) | sum, 6);
}
int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv);
google::ParseCommandLineFlags(&argc, &argv, true);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment