#ifndef CRDTP_PARSER_HANDLER_H_
#define CRDTP_PARSER_HANDLER_H_
#include <cstdint>
#include "span.h"
#include "status.h"
namespace crdtp {
class ParserHandler {
public:
virtual ~ParserHandler() = default;
virtual void HandleMapBegin() = 0;
virtual void HandleMapEnd() = 0;
virtual void HandleArrayBegin() = 0;
virtual void HandleArrayEnd() = 0;
virtual void HandleString8(span<uint8_t> chars) = 0;
virtual void HandleString16(span<uint16_t> chars) = 0;
virtual void HandleBinary(span<uint8_t> bytes) = 0;
virtual void HandleDouble(double value) = 0;
virtual void HandleInt32(int32_t value) = 0;
virtual void HandleBool(bool value) = 0;
virtual void HandleNull() = 0;
virtual void HandleError(Status error) = 0;
};
}
#endif