| 333 | protected: |
| 334 | template <bool Flattened, typename T> |
| 335 | static auto DoGetOne(const T& root, const FieldRef& ref, MemoryPool* pool = nullptr) { |
| 336 | if constexpr (Flattened) { |
| 337 | return ref.GetOneFlattened(root, pool); |
| 338 | } else { |
| 339 | return ref.GetOne(root); |
| 340 | } |
| 341 | } |
| 342 | template <bool Flattened, typename T> |
| 343 | static auto DoGetOneOrNone(const T& root, const FieldRef& ref, |
| 344 | MemoryPool* pool = nullptr) { |