From 10934a2b538a109a060b7ca00f4bae9b928a44ff Mon Sep 17 00:00:00 2001 From: Noah Watkins Date: Tue, 26 Mar 2024 09:10:41 -0700 Subject: [PATCH 1/5] build: track converted modules Signed-off-by: Noah Watkins --- src/v/CMakeLists.txt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/v/CMakeLists.txt b/src/v/CMakeLists.txt index c93cfd1b472df..75d471dbd125b 100644 --- a/src/v/CMakeLists.txt +++ b/src/v/CMakeLists.txt @@ -85,15 +85,21 @@ endforeach() add_subdirectory(base) link_libraries(v::base) +# New style modules. +add_subdirectory(hashing) +add_subdirectory(random) +add_subdirectory(bytes) +add_subdirectory(compression) +add_subdirectory(http) +add_subdirectory(container) +add_subdirectory(strings) +add_subdirectory(crypto) + # libraries add_subdirectory(test_utils) add_subdirectory(io) add_subdirectory(ssx) add_subdirectory(finjector) -add_subdirectory(hashing) -add_subdirectory(random) -add_subdirectory(bytes) -add_subdirectory(compression) add_subdirectory(utils) add_subdirectory(syschecks) add_subdirectory(net) @@ -109,7 +115,6 @@ add_subdirectory(features) add_subdirectory(kafka) add_subdirectory(reflection) add_subdirectory(pandaproxy) -add_subdirectory(http) add_subdirectory(cloud_storage_clients) add_subdirectory(archival) add_subdirectory(security) @@ -122,9 +127,6 @@ add_subdirectory(resource_mgmt) add_subdirectory(migrations) add_subdirectory(wasm) add_subdirectory(transform) -add_subdirectory(container) -add_subdirectory(strings) -add_subdirectory(crypto) option(ENABLE_GIT_VERSION "Build with Git metadata" OFF) From dbf74dbf50e0352a459722f272b6939d8dc19f1b Mon Sep 17 00:00:00 2001 From: Noah Watkins Date: Tue, 26 Mar 2024 09:52:01 -0700 Subject: [PATCH 2/5] json: factor out json specialization into submodule Signed-off-by: Noah Watkins --- src/v/compat/json.h | 1 + src/v/container/include/container/json.h | 29 ++++++++++++++++++++++++ src/v/json/json.h | 12 ---------- 3 files changed, 30 insertions(+), 12 deletions(-) create mode 100644 src/v/container/include/container/json.h diff --git a/src/v/compat/json.h b/src/v/compat/json.h index 4d70d37f6ac53..58c79547a8372 100644 --- a/src/v/compat/json.h +++ b/src/v/compat/json.h @@ -13,6 +13,7 @@ #include "cluster/errc.h" #include "cluster/partition_balancer_types.h" #include "cluster/types.h" +#include "container/json.h" #include "json/document.h" #include "json/json.h" #include "model/fundamental.h" diff --git a/src/v/container/include/container/json.h b/src/v/container/include/container/json.h new file mode 100644 index 0000000000000..a2e03954e5413 --- /dev/null +++ b/src/v/container/include/container/json.h @@ -0,0 +1,29 @@ +/* + * Copyright 2024 Redpanda Data, Inc. + * + * Use of this software is governed by the Business Source License + * included in the file licenses/BSL.md + * + * As of the Change Date specified in that file, in accordance with + * the Business Source License, use of this software will be governed + * by the Apache License, Version 2.0 + */ +#pragma once + +#include "container/fragmented_vector.h" +#include "json/json.h" + +namespace json { + +template +void rjson_serialize( + json::Writer& w, + const fragmented_vector& v) { + w.StartArray(); + for (const auto& e : v) { + rjson_serialize(w, e); + } + w.EndArray(); +} + +} // namespace json diff --git a/src/v/json/json.h b/src/v/json/json.h index 4c321be82585a..6a470f87ee114 100644 --- a/src/v/json/json.h +++ b/src/v/json/json.h @@ -11,7 +11,6 @@ #pragma once -#include "container/fragmented_vector.h" #include "json/_include_first.h" #include "json/prettywriter.h" #include "json/reader.h" @@ -95,17 +94,6 @@ void rjson_serialize( w.EndArray(); } -template -void rjson_serialize( - json::Writer& w, - const fragmented_vector& v) { - w.StartArray(); - for (const auto& e : v) { - rjson_serialize(w, e); - } - w.EndArray(); -} - template void rjson_serialize( json::Writer& w, From 432cfb02635e75046550936c2311b83882d44446 Mon Sep 17 00:00:00 2001 From: Noah Watkins Date: Tue, 26 Mar 2024 10:58:31 -0700 Subject: [PATCH 3/5] json: remove unused serializer Signed-off-by: Noah Watkins --- src/v/json/json.h | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/v/json/json.h b/src/v/json/json.h index 6a470f87ee114..7f729c5e18db6 100644 --- a/src/v/json/json.h +++ b/src/v/json/json.h @@ -20,9 +20,7 @@ #include "net/unresolved_address.h" #include "utils/named_type.h" -#include -#include -#include +#include #include #include @@ -48,9 +46,6 @@ void rjson_serialize(json::Writer& w, double v); void rjson_serialize(json::Writer& w, std::string_view s); -void rjson_serialize( - json::Writer& w, const ss::socket_address& v); - void rjson_serialize( json::Writer& w, const net::unresolved_address& v); From 20dcf977640e0555b9a5a018ebde892406efb212 Mon Sep 17 00:00:00 2001 From: Noah Watkins Date: Tue, 26 Mar 2024 11:05:23 -0700 Subject: [PATCH 4/5] json: move impl out of header Signed-off-by: Noah Watkins --- src/v/json/json.cc | 18 ++++++++++++++++++ src/v/json/json.h | 18 ++---------------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/v/json/json.cc b/src/v/json/json.cc index 2af499cd844b1..61736942d7196 100644 --- a/src/v/json/json.cc +++ b/src/v/json/json.cc @@ -98,4 +98,22 @@ void rjson_serialize( rjson_serialize(w, std::string_view{path.native()}); } +ss::sstring minify(std::string_view json) { + json::Reader r; + json::StringStream in(json.data()); + json::StringBuffer out; + json::Writer w{out}; + r.Parse(in, w); + return ss::sstring(out.GetString(), out.GetSize()); +} + +ss::sstring prettify(std::string_view json) { + json::Reader r; + json::StringStream in(json.data()); + json::StringBuffer out; + json::PrettyWriter w{out}; + r.Parse(in, w); + return ss::sstring(out.GetString(), out.GetSize()); +} + } // namespace json diff --git a/src/v/json/json.h b/src/v/json/json.h index 7f729c5e18db6..12135ad053c95 100644 --- a/src/v/json/json.h +++ b/src/v/json/json.h @@ -121,22 +121,8 @@ void rjson_serialize( w.EndArray(); } -inline ss::sstring minify(std::string_view json) { - json::Reader r; - json::StringStream in(json.data()); - json::StringBuffer out; - json::Writer w{out}; - r.Parse(in, w); - return ss::sstring(out.GetString(), out.GetSize()); -} +ss::sstring minify(std::string_view json); -inline ss::sstring prettify(std::string_view json) { - json::Reader r; - json::StringStream in(json.data()); - json::StringBuffer out; - json::PrettyWriter w{out}; - r.Parse(in, w); - return ss::sstring(out.GetString(), out.GetSize()); -} +ss::sstring prettify(std::string_view json); } // namespace json From 60f67177a110704a55d4f4b34130953ef5521ee6 Mon Sep 17 00:00:00 2001 From: Noah Watkins Date: Tue, 26 Mar 2024 11:05:43 -0700 Subject: [PATCH 5/5] json: remove default template parameter Signed-off-by: Noah Watkins --- src/v/json/json.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/v/json/json.h b/src/v/json/json.h index 12135ad053c95..261ccdeb67afd 100644 --- a/src/v/json/json.h +++ b/src/v/json/json.h @@ -89,7 +89,7 @@ void rjson_serialize( w.EndArray(); } -template +template void rjson_serialize( json::Writer& w, const ss::chunked_fifo& v) {