brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 9f0e16a Raw
47 lines · plain
1STRING_EXTENSION_LEVEL_OUTSIDE(SBTypeEnumMember, lldb::eDescriptionLevelBrief)2%extend lldb::SBTypeEnumMember {3#ifdef SWIGPYTHON4    %pythoncode %{5        def __iter__(self):6            '''Iterate over all members in a lldb.SBTypeEnumMemberList object.'''7            return lldb_iter(self, 'GetSize', 'GetTypeEnumMemberAtIndex')8 9        def __len__(self):10            '''Return the number of members in a lldb.SBTypeEnumMemberList object.'''11            return self.GetSize()12 13        name = property(GetName, None, doc='''A read only property that returns the name for this enum member as a string.''')14        type = property(GetType, None, doc='''A read only property that returns an lldb object that represents the type (lldb.SBType) for this enum member.''')15        signed = property(GetValueAsSigned, None, doc='''A read only property that returns the value of this enum member as a signed integer.''')16        unsigned = property(GetValueAsUnsigned, None, doc='''A read only property that returns the value of this enum member as a unsigned integer.''')17    %}18#endif19}20 21%extend lldb::SBTypeEnumMemberList {22#ifdef SWIGPYTHON23    %pythoncode %{24        def __iter__(self):25            '''Iterate over all members in a lldb.SBTypeEnumMemberList object.'''26            return lldb_iter(self, 'GetSize', 'GetTypeEnumMemberAtIndex')27 28        def __len__(self):29            '''Return the number of members in a lldb.SBTypeEnumMemberList object.'''30            return self.GetSize()31 32        def __getitem__(self, key):33          num_elements = self.GetSize()34          if type(key) is int:35              if -num_elements <= key < num_elements:36                  key %= num_elements37                  return self.GetTypeEnumMemberAtIndex(key)38          elif type(key) is str:39              for idx in range(num_elements):40                  item = self.GetTypeEnumMemberAtIndex(idx)41                  if item.name == key:42                      return item43          return None44    %}45#endif46}47