summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/codec-json/c++/json.tmpl.hpp22
1 files 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<schema::Primitive<T,N>, ToDecode> {
typename native_data_type<Schema>::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<err::invalid_state>();
+ return make_error<err::invalid_state>("Couldn't decode Primitive Value");
}
to.set(result);
@@ -666,7 +666,7 @@ struct json_decode<schema::Struct<schema::Member<T,Lits>...>, ToDecode> {
constexpr static string_literal Literal = parameter_key_pack_type<i, Lits...>::literal;
if(search_name == Literal.view()){
if(fields[i]){
- return make_error<err::invalid_state>();
+ return make_error<err::invalid_state>("Duplicate entry in Struct");
}
fields[i] = true;
auto eov = json_decode<Type, ToDecode>::decode(buff, to.template get<Literal>());
@@ -677,7 +677,7 @@ struct json_decode<schema::Struct<schema::Member<T,Lits>...>, ToDecode> {
decode_field_search<i+1>(buff, to, fields, search_name);
}
}else {
- return make_error<err::invalid_state>();
+ return make_error<err::invalid_state>("Field in Struct not found");
}
return void_t{};
}
@@ -694,7 +694,7 @@ struct json_decode<schema::Struct<schema::Member<T,Lits>...>, ToDecode> {
return make_error<err::buffer_exhausted>();
}
if(buff.read() != ':'){
- return make_error<err::invalid_state>();
+ return make_error<err::invalid_state>("Field separator in Struct expected");
}
buff.read_advance(1);
json_helper::skip_whitespace(buff);
@@ -717,13 +717,13 @@ struct json_decode<schema::Struct<schema::Member<T,Lits>...>, ToDecode> {
// If not all fields are set, the dataset is incomplete
for(auto& iter : fields){
if(!iter){
- return make_error<err::invalid_state>();
+ return make_error<err::invalid_state>("Not all fields were set");
}
}
buff.read_advance(1);
return void_t{};
}else{
- return make_error<err::invalid_state>();
+ return make_error<err::invalid_state>("Struct Separator ',' or Struct '}' ending expected");
}
json_helper::skip_whitespace(buff);
if(buff.read_composite_length() == 0){
@@ -738,7 +738,7 @@ struct json_decode<schema::Struct<schema::Member<T,Lits>...>, ToDecode> {
std::fill(found_fields.begin(), found_fields.end(), false);
SAW_ASSERT(buff.read() == '{'){
- return make_error<err::invalid_state>();
+ return make_error<err::invalid_state>("Expected Struct beginning '{'");
}
buff.read_advance(1);
json_helper::skip_whitespace(buff);
@@ -749,7 +749,7 @@ struct json_decode<schema::Struct<schema::Member<T,Lits>...>, ToDecode> {
// Check if there are no elements present in the JSON Struct
if(buff.read() == '}'){
if(sizeof...(T) > 0){
- return make_error<err::invalid_state>();
+ return make_error<err::invalid_state>("Expected Struct ending '}'");
}
buff.read_advance(1);
return void_t{};
@@ -773,7 +773,7 @@ struct json_decode<schema::Tuple<T...>, ToDecode> {
if constexpr (i < sizeof...(T)){
if constexpr ( i > 0 ){
if(buff.read() != ','){
- return make_error<err::invalid_state>();
+ return make_error<err::invalid_state>("Expected ',' in Tuple");
}
buff.read_advance(1);
json_helper::skip_whitespace(buff);
@@ -798,7 +798,7 @@ struct json_decode<schema::Tuple<T...>, ToDecode> {
}
}else{
if(buff.read() != ']'){
- return make_error<err::invalid_state>();
+ return make_error<err::invalid_state>("Expected Tuple Ending ']'");
}
buff.read_advance(1);
}
@@ -888,7 +888,7 @@ struct json_decode<schema::Array<T,D>, ToDecode> {
if(log_dim){
dims[Level] = index[Level];
}else if (dims[Level] != index[Level]){
- return make_error<err::invalid_state>();
+ return make_error<err::invalid_state>("Not matching Array endings");
}
}
return void_t{};