json_easy_parser_impl.h 781 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include <util/generic/string.h>
  3. namespace NJson {
  4. namespace NImpl {
  5. enum EType {
  6. ARRAY,
  7. MAP,
  8. MAP_KEY
  9. };
  10. }
  11. template <class TStringType>
  12. struct TPathElemImpl {
  13. NImpl::EType Type;
  14. TStringType Key;
  15. int ArrayCounter;
  16. TPathElemImpl(NImpl::EType type)
  17. : Type(type)
  18. , ArrayCounter()
  19. {
  20. }
  21. TPathElemImpl(const TStringType& key)
  22. : Type(NImpl::MAP_KEY)
  23. , Key(key)
  24. , ArrayCounter()
  25. {
  26. }
  27. TPathElemImpl(int arrayCounter)
  28. : Type(NImpl::ARRAY)
  29. , ArrayCounter(arrayCounter)
  30. {
  31. }
  32. };
  33. typedef TPathElemImpl<TString> TPathElem;
  34. }