class PrettyRecursiveVariant
Defined at line 260 of file ../../src/developer/debug/zxdb/expr/pretty_type.h
Generic variants in C++ are normally implemented as a nested list of unions. This allows a
generic number of possibilities for the variant value by using the type system to implement
recursion.
Public Methods
void PrettyRecursiveVariant (const std::string & simple_type_name, const std::string & base_expr, const std::string & index_expr, const std::string & next_expr, const std::string & value_expr, const std::string & no_value_string, std::initializer_list<std::pair<std::string, std::string>> getters)
To get to the value, this class constructs an expression based on the "index_expr" which is
an expression that should evaluate to an integer. The pattern will be:
<base
_expr> . (
<next
_expr> * index ) .
<value
_expr>
So if index_expr evaluates to 2 and given simple neams for each item, it will produce:
"base.next.next.value"
If the index casted to a signed integer is negative, the value will be reported as the
"no_value_string".
Defined at line 270 of file ../../src/developer/debug/zxdb/expr/pretty_type.h
void Format (FormatNode * node, const FormatOptions & options, const fxl::RefPtr<EvalContext> & context, fit::deferred_callback cb)
Defined at line 640 of file ../../src/developer/debug/zxdb/expr/pretty_type.cc