skiff_validator.h 811 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include "public.h"
  3. #include "skiff_schema.h"
  4. #include <util/string/cast.h>
  5. namespace NSkiff {
  6. ////////////////////////////////////////////////////////////////////////////////
  7. class TValidatorNodeStack;
  8. ////////////////////////////////////////////////////////////////////////////////
  9. class TSkiffValidator
  10. {
  11. public:
  12. explicit TSkiffValidator(std::shared_ptr<TSkiffSchema> skiffSchema);
  13. ~TSkiffValidator();
  14. void BeforeVariant8Tag();
  15. void OnVariant8Tag(ui8 tag);
  16. void BeforeVariant16Tag();
  17. void OnVariant16Tag(ui16 tag);
  18. void OnSimpleType(EWireType value);
  19. void ValidateFinished();
  20. private:
  21. const std::unique_ptr<TValidatorNodeStack> Context_;
  22. };
  23. ////////////////////////////////////////////////////////////////////////////////
  24. } // namespace NSkiff