object-introspection/include/oi
Jake Hillion 40af807d8b tbv2: support capture-thrift-isset
Support the capture-thrift-isset feature with TreeBuilder-v2. Fairly minor
changes here except the type of the Enum in a template parameter now matters.

We follow the previous behaviour of capturing a value for each field in a
struct that has an `isset_bitset`. This value is a VarInt captured before the
C++ contents of the member. It has 3 values: 0 (not set), 1 (set), and 2
(unavailable). These are handled by the processor and represented in the output
as `false`, `true`, and `std::nullopt_t` respectively.

Changes:
- Add a simple Thrift isset processor before any fields that have Thrift isset.
- Store the fully qualified names of enum types in DrgnParser - it already
  worked out this information anyway for naming the values and this is
  consistent with classes.
- Forward all enum template parameters under their input name under the
  assumption that they will all be policy type things like `IssetBitsetOption`.
  This could turn out to be wrong.

Test plan:
- CI (doesn't test thrift changes but covers other regressions)
- Updated Thrift enum tests for new format.
- `FILTER='OilIntegration.*' make test` - Thrift tests failed before, succeed
  after.
2024-01-16 19:09:46 +00:00
..
exporters tbv2: support capture-thrift-isset 2024-01-16 19:09:46 +00:00
result tbv2: add is_primitive to output 2024-01-16 11:14:13 +00:00
types static types: add consume function similar to delegate 2023-09-15 14:43:09 +01:00
IntrospectionResult-inl.h tbv2: improve equality for iterator 2023-10-25 17:05:42 +01:00
IntrospectionResult.h capture_keys: store dynamic type path components more efficiently 2023-12-14 16:05:33 +00:00
oi-jit-inl.h oil v2 2023-08-23 15:59:53 +01:00
oi-jit.h support 0 to many config files (#371) 2023-10-02 14:06:39 -06:00
oi.h oil: make AoT introspect noinline 2023-10-25 13:23:47 +01:00