This is an automated email from the ASF dual-hosted git repository.

iilyak pushed a commit to branch couch-stats-resource-tracker-v3-rebase-http-4
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 660c9afdf0370b2171fd92a98d0d5413a09199a4
Author: ILYA Khlopotov <[email protected]>
AuthorDate: Wed Jun 25 07:49:54 2025 -0700

    Replace csrt_util:map_to_rctx/1 with csrt_entry:from_map/1
---
 src/couch_stats/src/csrt_entry.erl               | 51 +++++++++++++++++++++++-
 src/couch_stats/src/csrt_util.erl                | 50 -----------------------
 src/couch_stats/test/eunit/csrt_logger_tests.erl |  2 +-
 3 files changed, 51 insertions(+), 52 deletions(-)

diff --git a/src/couch_stats/src/csrt_entry.erl 
b/src/couch_stats/src/csrt_entry.erl
index 61949c65f..263572341 100644
--- a/src/couch_stats/src/csrt_entry.erl
+++ b/src/couch_stats/src/csrt_entry.erl
@@ -17,7 +17,8 @@
 
 -export([
     value/2,
-    key/1
+    key/1,
+    from_map/1
 ]).
 
 -spec value(#rctx{}, rctx_field()) -> any().
@@ -92,3 +93,51 @@ key_from_binary(Other) -> key_error(Other).
 key_error(Key) ->
     {error, {invalid_key, Key}}.
 
+-spec from_map(Map :: map()) -> rctx().
+
+from_map(Map) ->
+    maps:fold(fun set_field/3, #rctx{}, Map).
+
+-spec set_field(Field :: rctx_field(), Val :: any(), Rctx :: rctx()) -> rctx().
+set_field(updated_at, Val, Rctx) ->
+    Rctx#rctx{updated_at = Val};
+set_field(started_at, Val, Rctx) ->
+    Rctx#rctx{started_at = Val};
+set_field(pid_ref, Val, Rctx) ->
+    Rctx#rctx{pid_ref = Val};
+set_field(nonce, Val, Rctx) ->
+    Rctx#rctx{nonce = Val};
+set_field(dbname, Val, Rctx) ->
+    Rctx#rctx{dbname = Val};
+set_field(username, Val, Rctx) ->
+    Rctx#rctx{username = Val};
+set_field(db_open, Val, Rctx) ->
+    Rctx#rctx{db_open = Val};
+set_field(docs_read, Val, Rctx) ->
+    Rctx#rctx{docs_read = Val};
+set_field(docs_written, Val, Rctx) ->
+    Rctx#rctx{docs_written = Val};
+set_field(js_filter, Val, Rctx) ->
+    Rctx#rctx{js_filter = Val};
+set_field(js_filtered_docs, Val, Rctx) ->
+    Rctx#rctx{js_filtered_docs = Val};
+set_field(rows_read, Val, Rctx) ->
+    Rctx#rctx{rows_read = Val};
+set_field(type, Val, Rctx) ->
+    Rctx#rctx{type = Val};
+set_field(get_kp_node, Val, Rctx) ->
+    Rctx#rctx{get_kp_node = Val};
+set_field(get_kv_node, Val, Rctx) ->
+    Rctx#rctx{get_kv_node = Val};
+%% "Example to extend CSRT"
+%% set_field(write_kp_node, Val, Rctx) ->
+%%     Rctx#rctx{write_kp_node = Val};
+%% set_field(write_kv_node, Val, Rctx) ->
+%%     Rctx#rctx{write_kv_node = Val};
+set_field(changes_returned, Val, Rctx) ->
+    Rctx#rctx{changes_returned = Val};
+set_field(ioq_calls, Val, Rctx) ->
+    Rctx#rctx{ioq_calls = Val};
+set_field(_, _, Rctx) ->
+    %% Unknown key, could throw but just move on
+    Rctx.
diff --git a/src/couch_stats/src/csrt_util.erl 
b/src/couch_stats/src/csrt_util.erl
index 4da5dc610..21bfd8e7d 100644
--- a/src/couch_stats/src/csrt_util.erl
+++ b/src/couch_stats/src/csrt_util.erl
@@ -57,7 +57,6 @@
 -export([
     set_fabric_init_p/2,
     set_fabric_init_p/3,
-    map_to_rctx/1,
     rctx_record_info/0
 ]).
 
@@ -226,55 +225,6 @@ to_json(#rctx{} = Rctx) ->
         ioq_calls => Rctx#rctx.ioq_calls
     }.
 
-%% NOTE: this does not do the inverse of to_json, should it convert types?
--spec map_to_rctx(Map :: map()) -> rctx().
-map_to_rctx(Map) ->
-    maps:fold(fun map_to_rctx_field/3, #rctx{}, Map).
-
--spec map_to_rctx_field(Field :: rctx_field(), Val :: any(), Rctx :: rctx()) 
-> rctx().
-map_to_rctx_field(updated_at, Val, Rctx) ->
-    Rctx#rctx{updated_at = Val};
-map_to_rctx_field(started_at, Val, Rctx) ->
-    Rctx#rctx{started_at = Val};
-map_to_rctx_field(pid_ref, Val, Rctx) ->
-    Rctx#rctx{pid_ref = Val};
-map_to_rctx_field(nonce, Val, Rctx) ->
-    Rctx#rctx{nonce = Val};
-map_to_rctx_field(dbname, Val, Rctx) ->
-    Rctx#rctx{dbname = Val};
-map_to_rctx_field(username, Val, Rctx) ->
-    Rctx#rctx{username = Val};
-map_to_rctx_field(db_open, Val, Rctx) ->
-    Rctx#rctx{db_open = Val};
-map_to_rctx_field(docs_read, Val, Rctx) ->
-    Rctx#rctx{docs_read = Val};
-map_to_rctx_field(docs_written, Val, Rctx) ->
-    Rctx#rctx{docs_written = Val};
-map_to_rctx_field(js_filter, Val, Rctx) ->
-    Rctx#rctx{js_filter = Val};
-map_to_rctx_field(js_filtered_docs, Val, Rctx) ->
-    Rctx#rctx{js_filtered_docs = Val};
-map_to_rctx_field(rows_read, Val, Rctx) ->
-    Rctx#rctx{rows_read = Val};
-map_to_rctx_field(type, Val, Rctx) ->
-    Rctx#rctx{type = Val};
-map_to_rctx_field(get_kp_node, Val, Rctx) ->
-    Rctx#rctx{get_kp_node = Val};
-map_to_rctx_field(get_kv_node, Val, Rctx) ->
-    Rctx#rctx{get_kv_node = Val};
-%% "Example to extend CSRT"
-%% map_to_rctx_field(write_kp_node, Val, Rctx) ->
-%%     Rctx#rctx{write_kp_node = Val};
-%% map_to_rctx_field(write_kv_node, Val, Rctx) ->
-%%     Rctx#rctx{write_kv_node = Val};
-map_to_rctx_field(changes_returned, Val, Rctx) ->
-    Rctx#rctx{changes_returned = Val};
-map_to_rctx_field(ioq_calls, Val, Rctx) ->
-    Rctx#rctx{ioq_calls = Val};
-map_to_rctx_field(_, _, Rctx) ->
-    %% Unknown key, could throw but just move on
-    Rctx.
-
 -spec add_delta(T :: term(), Delta :: maybe_delta()) -> term_delta().
 add_delta(T, undefined) ->
     T;
diff --git a/src/couch_stats/test/eunit/csrt_logger_tests.erl 
b/src/couch_stats/test/eunit/csrt_logger_tests.erl
index 74c88590b..484817313 100644
--- a/src/couch_stats/test/eunit/csrt_logger_tests.erl
+++ b/src/couch_stats/test/eunit/csrt_logger_tests.erl
@@ -170,7 +170,7 @@ rctx_gen(Opts0) ->
         '_do_changes' => true
     },
     Opts = maps:merge(Base, Opts0),
-    csrt_util:map_to_rctx(
+    csrt_entry:from_map(
         maps:fold(
             fun
                 %% Hack for changes because we need to modify both

Reply via email to