Nest pack_as()

in nest/nest/nest.h [170:194]


  Nest pack_as(InputIt *first, const InputIt &last) const {
    return std::visit(
        overloaded{[&first, &last](const T &) {
                     if (*first == last)
                       throw std::out_of_range("Too few elements in sequence");
                     return Nest(*(*first)++);
                   },
                   [&first, &last](const std::vector<Nest> &v) {
                     std::vector<Nest> result;
                     result.reserve(v.size());
                     for (const Nest &n : v) {
                       result.emplace_back(n.pack_as(first, last));
                     }
                     return Nest(result);
                   },
                   [&first, &last](const std::map<std::string, Nest> &m) {
                     std::map<std::string, Nest> result;
                     for (auto &p : m) {
                       result.emplace_hint(result.end(), p.first,
                                           p.second.pack_as(first, last));
                     }
                     return Nest(result);
                   }},
        value);
  }