From 8377be960d5d0e65227cc179aded1f5edbf8de79 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Tue, 21 Oct 2025 23:15:15 +0200 Subject: json: Add support for null --- src/json.cc | 10 ++++++++++ src/json.hh | 1 + 2 files changed, 11 insertions(+) diff --git a/src/json.cc b/src/json.cc index 46ea513..e8ddf52 100644 --- a/src/json.cc +++ b/src/json.cc @@ -62,6 +62,11 @@ class BaseWriter : public Writer { write(value); } + void value(std::nullptr_t) override { + before_value(); + write(nullptr); + } + void start_array() override { before_value(); stack_.emplace_back(StackEntry::Type::kArray); @@ -125,6 +130,7 @@ class BaseWriter : public Writer { virtual void write(bool value) = 0; virtual void write(char value) = 0; virtual void write(std::string_view value) = 0; + virtual void write(std::nullptr_t) = 0; void write(char const* value) { this->write(std::string_view(value)); } @@ -225,6 +231,8 @@ class IosWriter : public BaseWriter { void write(char value) override { out_ << value; } + void write(std::nullptr_t) override { out_ << "null"; } + private: std::ostream& out_; }; @@ -275,6 +283,8 @@ class StringWriter : public BaseWriter { void write(char value) override { out_.push_back(value); } + void write(std::nullptr_t) override { out_.append("null"); } + void clear() override { BaseWriter::clear(); out_.clear(); diff --git a/src/json.hh b/src/json.hh index 609fc80..f2aae92 100644 --- a/src/json.hh +++ b/src/json.hh @@ -19,6 +19,7 @@ class Writer { virtual void value(float value) = 0; virtual void value(double value) = 0; virtual void value(bool value) = 0; + virtual void value(std::nullptr_t) = 0; void value(char const* value); void value(int32_t value); -- cgit v1.2.3-70-g09d2