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