MCPcopy Create free account
hub / github.com/apache/arrow / StdString

Class StdString

cpp/gdb_arrow.py:458–496  ·  view source on GitHub ↗

A `std::string` (or possibly `std::string_view`) value.

Source from the content-addressed store, hash-verified

456
457
458class StdString:
459 """
460 A `std::string` (or possibly `std::string_view`) value.
461 """
462
463 def __init__(self, val):
464 self.val = val
465 try:
466 # libstdc++ internals
467 self._data = val['_M_dataplus']['_M_p']
468 self._size = val['_M_string_length']
469 except gdb.error:
470 # fallback for other C++ standard libraries
471 self._data = gdb.parse_and_eval(f"{for_evaluation(val)}.c_str()")
472 self._size = gdb.parse_and_eval(f"{for_evaluation(val)}.size()")
473
474 def __bool__(self):
475 return self._size != 0
476
477 @property
478 def data(self):
479 return self._data
480
481 @property
482 def size(self):
483 return self._size
484
485 def bytes_literal(self):
486 return self._data.lazy_string(length=self._size).value()
487
488 def string_literal(self):
489 # XXX use lazy_string() as well?
490 return string_literal(self._data)
491
492 def string(self):
493 return self._data.string()
494
495 def __format__(self, fmt):
496 return str(self.bytes_literal())
497
498
499class StdVector(Sequence):

Callers 7

nameMethod · 0.85
__getitem__Method · 0.85
to_stringMethod · 0.85
to_stringMethod · 0.85
to_stringMethod · 0.85
childrenMethod · 0.85
_format_errorMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected