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);
}