From 0b2d95b65e363e2ff3e1747a0035137c46d20751 Mon Sep 17 00:00:00 2001 From: Claudius 'keldu' Holeksa Date: Sun, 18 Aug 2024 18:57:32 +0200 Subject: Adding comments to decoding failures --- modules/codec-json/c++/json.tmpl.hpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/codec-json/c++/json.tmpl.hpp b/modules/codec-json/c++/json.tmpl.hpp index d17c02d..8dbee8c 100644 --- a/modules/codec-json/c++/json.tmpl.hpp +++ b/modules/codec-json/c++/json.tmpl.hpp @@ -528,7 +528,7 @@ struct json_decode, ToDecode> { typename native_data_type::type result; auto fc_result = std::from_chars(num_view.data(), num_view.data() + num_view.size(), result); if(fc_result.ec != std::errc{}){ - return make_error(); + return make_error("Couldn't decode Primitive Value"); } to.set(result); @@ -666,7 +666,7 @@ struct json_decode...>, ToDecode> { constexpr static string_literal Literal = parameter_key_pack_type::literal; if(search_name == Literal.view()){ if(fields[i]){ - return make_error(); + return make_error("Duplicate entry in Struct"); } fields[i] = true; auto eov = json_decode::decode(buff, to.template get()); @@ -677,7 +677,7 @@ struct json_decode...>, ToDecode> { decode_field_search(buff, to, fields, search_name); } }else { - return make_error(); + return make_error("Field in Struct not found"); } return void_t{}; } @@ -694,7 +694,7 @@ struct json_decode...>, ToDecode> { return make_error(); } if(buff.read() != ':'){ - return make_error(); + return make_error("Field separator in Struct expected"); } buff.read_advance(1); json_helper::skip_whitespace(buff); @@ -717,13 +717,13 @@ struct json_decode...>, ToDecode> { // If not all fields are set, the dataset is incomplete for(auto& iter : fields){ if(!iter){ - return make_error(); + return make_error("Not all fields were set"); } } buff.read_advance(1); return void_t{}; }else{ - return make_error(); + return make_error("Struct Separator ',' or Struct '}' ending expected"); } json_helper::skip_whitespace(buff); if(buff.read_composite_length() == 0){ @@ -738,7 +738,7 @@ struct json_decode...>, ToDecode> { std::fill(found_fields.begin(), found_fields.end(), false); SAW_ASSERT(buff.read() == '{'){ - return make_error(); + return make_error("Expected Struct beginning '{'"); } buff.read_advance(1); json_helper::skip_whitespace(buff); @@ -749,7 +749,7 @@ struct json_decode...>, ToDecode> { // Check if there are no elements present in the JSON Struct if(buff.read() == '}'){ if(sizeof...(T) > 0){ - return make_error(); + return make_error("Expected Struct ending '}'"); } buff.read_advance(1); return void_t{}; @@ -773,7 +773,7 @@ struct json_decode, ToDecode> { if constexpr (i < sizeof...(T)){ if constexpr ( i > 0 ){ if(buff.read() != ','){ - return make_error(); + return make_error("Expected ',' in Tuple"); } buff.read_advance(1); json_helper::skip_whitespace(buff); @@ -798,7 +798,7 @@ struct json_decode, ToDecode> { } }else{ if(buff.read() != ']'){ - return make_error(); + return make_error("Expected Tuple Ending ']'"); } buff.read_advance(1); } @@ -888,7 +888,7 @@ struct json_decode, ToDecode> { if(log_dim){ dims[Level] = index[Level]; }else if (dims[Level] != index[Level]){ - return make_error(); + return make_error("Not matching Array endings"); } } return void_t{}; -- cgit v1.2.3