void VisitNestedImpl()

in rlmeta/cc/nested_utils.cc [18:44]


void VisitNestedImpl(Function func, const py::object& obj) {
  if (py::isinstance<py::tuple>(obj)) {
    const py::tuple src = py::reinterpret_borrow<py::tuple>(obj);
    for (const auto x : src) {
      VisitNestedImpl(func, py::reinterpret_borrow<py::object>(x));
    }
    return;
  }

  if (py::isinstance<py::list>(obj)) {
    const py::list src = py::reinterpret_borrow<py::list>(obj);
    for (const auto x : src) {
      VisitNestedImpl(func, py::reinterpret_borrow<py::object>(x));
    }
    return;
  }

  if (py::isinstance<py::dict>(obj)) {
    const py::dict src = py::reinterpret_borrow<py::dict>(obj);
    for (const auto [k, v] : src) {
      VisitNestedImpl(func, py::reinterpret_borrow<py::object>(v));
    }
    return;
  }

  func(obj);
}