summaryrefslogtreecommitdiff
path: root/src/strings
diff options
context:
space:
mode:
Diffstat (limited to 'src/strings')
-rw-r--r--src/strings/vstring.py17
-rw-r--r--src/strings/xstring.py18
2 files changed, 35 insertions, 0 deletions
diff --git a/src/strings/vstring.py b/src/strings/vstring.py
new file mode 100644
index 0000000..39e657b
--- /dev/null
+++ b/src/strings/vstring.py
@@ -0,0 +1,17 @@
+class VString(object):
+ ''' print a VString
+ '''
+ __slots__ = ('_value')
+ name = 'strings::VString'
+ enabled = True
+
+ def __init__(self, value):
+ self._value = value
+
+ def to_string(self):
+ b = self._value['_data']
+ b = b.cast(b.type.target().pointer())
+ n = self._value.type.template_argument(0)
+ s = self._value['_special']
+ d = n - s
+ return b.lazy_string(length=d)
diff --git a/src/strings/xstring.py b/src/strings/xstring.py
new file mode 100644
index 0000000..92cb78b
--- /dev/null
+++ b/src/strings/xstring.py
@@ -0,0 +1,18 @@
+class XString(object):
+ ''' print a XString
+ '''
+ __slots__ = ('_value')
+ name = 'strings::XString'
+ enabled = True
+
+ def __init__(self, value):
+ self._value = value
+
+ def children(self):
+ yield 'base', self._value['_base']
+
+ def to_string(self):
+ b = self._value['_b']['_ptr']
+ e = self._value['_e']['_ptr']
+ d = e - b
+ return b.lazy_string(length=d)