1*4440fb50SKudo Chien #include "JsiUtils.h"
2*4440fb50SKudo Chien #include <vector>
3*4440fb50SKudo Chien 
4*4440fb50SKudo Chien using namespace facebook;
5*4440fb50SKudo Chien 
6*4440fb50SKudo Chien namespace reanimated::jsi_utils {
7*4440fb50SKudo Chien 
convertStringToArray(jsi::Runtime & rt,const std::string & value,const unsigned int expectedSize)8*4440fb50SKudo Chien jsi::Array convertStringToArray(
9*4440fb50SKudo Chien     jsi::Runtime &rt,
10*4440fb50SKudo Chien     const std::string &value,
11*4440fb50SKudo Chien     const unsigned int expectedSize) {
12*4440fb50SKudo Chien   std::vector<float> transformMatrixList;
13*4440fb50SKudo Chien   std::istringstream stringStream(value);
14*4440fb50SKudo Chien   std::copy(
15*4440fb50SKudo Chien       std::istream_iterator<float>(stringStream),
16*4440fb50SKudo Chien       std::istream_iterator<float>(),
17*4440fb50SKudo Chien       std::back_inserter(transformMatrixList));
18*4440fb50SKudo Chien   assert(transformMatrixList.size() == expectedSize);
19*4440fb50SKudo Chien   jsi::Array matrix(rt, expectedSize);
20*4440fb50SKudo Chien   for (int i = 0; i < expectedSize; i++) {
21*4440fb50SKudo Chien     matrix.setValueAtIndex(rt, i, transformMatrixList[i]);
22*4440fb50SKudo Chien   }
23*4440fb50SKudo Chien   return matrix;
24*4440fb50SKudo Chien }
25*4440fb50SKudo Chien 
26*4440fb50SKudo Chien } // namespace reanimated::jsi_utils
27