summaryrefslogtreecommitdiff
path: root/src/strings/rstring.py
blob: f0618d6c524143275bc09ae0edbf101fee907fc0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class RString(object):
    ''' print a RString
    '''
    __slots__ = ('_value')
    name = 'strings::RString'
    enabled = True

    def __init__(self, value):
        self._value = value

    def children(self):
        yield 'count', self._value['owned'].dereference()['count']

    def to_string(self):
        r = self._value['owned'].dereference()
        b = r['body']
        b = b.cast(b.type.target().pointer())
        d = r['size']
        return b.lazy_string(length=d)