File: SBTypeEnumMemberExtensions.i

package info (click to toggle)
llvm-toolchain-20 1%3A20.1.8-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 2,111,388 kB
  • sloc: cpp: 7,438,767; ansic: 1,393,871; asm: 1,012,926; python: 241,728; f90: 86,635; objc: 75,411; lisp: 42,144; pascal: 17,286; sh: 10,027; ml: 5,082; perl: 4,730; awk: 3,523; makefile: 3,349; javascript: 2,251; xml: 892; fortran: 672
file content (46 lines) | stat: -rw-r--r-- 2,000 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
STRING_EXTENSION_LEVEL_OUTSIDE(SBTypeEnumMember, lldb::eDescriptionLevelBrief)
%extend lldb::SBTypeEnumMember {
#ifdef SWIGPYTHON
    %pythoncode %{
        def __iter__(self):
            '''Iterate over all members in a lldb.SBTypeEnumMemberList object.'''
            return lldb_iter(self, 'GetSize', 'GetTypeEnumMemberAtIndex')

        def __len__(self):
            '''Return the number of members in a lldb.SBTypeEnumMemberList object.'''
            return self.GetSize()

        name = property(GetName, None, doc='''A read only property that returns the name for this enum member as a string.''')
        type = property(GetType, None, doc='''A read only property that returns an lldb object that represents the type (lldb.SBType) for this enum member.''')
        signed = property(GetValueAsSigned, None, doc='''A read only property that returns the value of this enum member as a signed integer.''')
        unsigned = property(GetValueAsUnsigned, None, doc='''A read only property that returns the value of this enum member as a unsigned integer.''')
    %}
#endif
}

%extend lldb::SBTypeEnumMemberList {
#ifdef SWIGPYTHON
    %pythoncode %{
        def __iter__(self):
            '''Iterate over all members in a lldb.SBTypeEnumMemberList object.'''
            return lldb_iter(self, 'GetSize', 'GetTypeEnumMemberAtIndex')

        def __len__(self):
            '''Return the number of members in a lldb.SBTypeEnumMemberList object.'''
            return self.GetSize()

        def __getitem__(self, key):
          num_elements = self.GetSize()
          if type(key) is int:
              if -num_elements <= key < num_elements:
                  key %= num_elements
                  return self.GetTypeEnumMemberAtIndex(key)
          elif type(key) is str:
              for idx in range(num_elements):
                  item = self.GetTypeEnumMemberAtIndex(idx)
                  if item.name == key:
                      return item
          return None
    %}
#endif
}