Extract all regions from container's region groups.
272{
273 if (!container) {
274 error<std::invalid_argument>(
275 Journal::Component::Kakshya, Journal::Context::Runtime,
276 std::source_location::current(),
277 "Container is null");
278 }
279
280 auto all_groups = container->get_all_region_groups();
281 std::vector<std::unordered_map<std::string, std::any>> regions_info;
282
283 for (const auto& [group_name, group] : all_groups) {
284 for (size_t i = 0; i < group.regions.size(); ++i) {
285 const auto& region = group.regions[i];
286
287 std::unordered_map<std::string, std::any> region_info;
288 region_info["group_name"] = group_name;
289 region_info["region_index"] = i;
290 region_info["start_coordinates"] = region.start_coordinates;
291 region_info["end_coordinates"] = region.end_coordinates;
292 region_info["attributes"] = region.attributes;
293
294 regions_info.push_back(std::move(region_info));
295 }
296 }
297
298 return regions_info;
299}