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