From 1783a3af7b9938ac3bb22dc64709632cf1b710c5 Mon Sep 17 00:00:00 2001 From: Stefano Cristiano Date: Thu, 1 Aug 2024 00:04:41 +0200 Subject: [PATCH] SerializationText: Support bool data types for JSON serializer --- .../SerializationText/SerializationJson.cpp | 19 +++++++++++++++++++ .../SerializationText/SerializationJson.h | 1 + 2 files changed, 20 insertions(+) diff --git a/Libraries/SerializationText/SerializationJson.cpp b/Libraries/SerializationText/SerializationJson.cpp index 612ee4c5..d76bd641 100644 --- a/Libraries/SerializationText/SerializationJson.cpp +++ b/Libraries/SerializationText/SerializationJson.cpp @@ -148,6 +148,25 @@ bool SC::SerializationJson::Reader::getNextField(uint32_t index, StringView& tex return token.getType() == JsonTokenizer::Token::Colon; } +bool SC::SerializationJson::Reader::serialize(uint32_t index, bool& value) +{ + SC_COMPILER_UNUSED(value); + SC_TRY(eventuallyExpectComma(index)); + JsonTokenizer::Token token; + SC_TRY(JsonTokenizer::tokenizeNext(iterator, token)); + if (token.getType() == JsonTokenizer::Token::True) + { + value = true; + return true; + } + if (token.getType() == JsonTokenizer::Token::False) + { + value = false; + return true; + } + return false; +} + bool SC::SerializationJson::Reader::serialize(uint32_t index, float& value) { SC_COMPILER_UNUSED(value); diff --git a/Libraries/SerializationText/SerializationJson.h b/Libraries/SerializationText/SerializationJson.h index b276a029..25f1af17 100644 --- a/Libraries/SerializationText/SerializationJson.h +++ b/Libraries/SerializationText/SerializationJson.h @@ -192,6 +192,7 @@ struct SC::SerializationJson [[nodiscard]] bool startObjectField(uint32_t index, StringView text); [[nodiscard]] bool getNextField(uint32_t index, StringView& text, bool& hasMore); + [[nodiscard]] bool serialize(uint32_t index, bool& value); [[nodiscard]] bool serialize(uint32_t index, float& value); [[nodiscard]] bool serialize(uint32_t index, int32_t& value); [[nodiscard]] bool serialize(uint32_t index, String& text);