def _get_fields()

in tools/rossim/rosigen.py [0:0]


    def _get_fields(self, msg):
        obj = {}
        for field in msg.get_fields_and_field_types():
            field_val = getattr(msg, field)
            if type(field_val) in self.PRIMITIVE_TYPES:
                obj[field] = None  # No further auto-completion
            elif self._is_primitive_list(field_val):
                obj[field] = {}
                for i in range(len(field_val)):
                    obj[field][f"[{i}]"] = None
            elif self._is_list(field_val):
                obj[field] = {}
                for i in range(len(field_val)):
                    obj[field][f"[{i}]"] = self._get_fields(field_val[i])
            else:
                obj[field] = self._get_fields(field_val)
        return obj