11// Copyright (c) 2016 Dr. Colin Hirsch and Daniel Frey
22// Please see LICENSE for license or visit https://github.com/taocpp/json/
33
4- #ifndef TAOCPP_JSON_INCLUDE_JSON_NLOHMANN_TRAVERSE_VALUE_HH
5- #define TAOCPP_JSON_INCLUDE_JSON_NLOHMANN_TRAVERSE_VALUE_HH
4+ #ifndef TAOCPP_JSON_INCLUDE_JSON_NLOHMANN_FROM_VALUE_HH
5+ #define TAOCPP_JSON_INCLUDE_JSON_NLOHMANN_FROM_VALUE_HH
66
77#include < cstdint>
88#include < string>
@@ -15,46 +15,46 @@ namespace tao
1515 namespace nlohmann
1616 {
1717 // SAX producer for an nlohmann/json value
18- template < typename Value, typename Handler >
19- void traverse_value ( const Value & v, Handler & handler )
18+ template < typename Value, typename Consumer >
19+ void from_value ( const Value & v, Consumer & consumer )
2020 {
2121 switch ( v.type () ) {
2222 case Value::value_t ::discarded:
2323 throw std::logic_error ( " invalid discarded value" );
2424 case Value::value_t ::null:
25- handler .null ();
25+ consumer .null ();
2626 return ;
2727 case Value::value_t ::boolean:
28- handler .boolean ( v.template get < bool >() );
28+ consumer .boolean ( v.template get < bool >() );
2929 return ;
3030 case Value::value_t ::number_integer:
31- handler .number ( v.template get < std::int64_t >() );
31+ consumer .number ( v.template get < std::int64_t >() );
3232 return ;
3333 case Value::value_t ::number_unsigned:
34- handler .number ( v.template get < std::uint64_t >() );
34+ consumer .number ( v.template get < std::uint64_t >() );
3535 return ;
3636 case Value::value_t ::number_float:
37- handler .number ( v.template get < double >() );
37+ consumer .number ( v.template get < double >() );
3838 return ;
3939 case Value::value_t ::string:
40- handler .string ( v.template get_ref < const std::string & >() );
40+ consumer .string ( v.template get_ref < const std::string & >() );
4141 return ;
4242 case Value::value_t ::array:
43- handler .begin_array ();
43+ consumer .begin_array ();
4444 for ( const auto & e : v ) {
45- tao::json::nlohmann::traverse_value ( e, handler );
46- handler .element ();
45+ tao::json::nlohmann::from_value ( e, consumer );
46+ consumer .element ();
4747 }
48- handler .end_array ();
48+ consumer .end_array ();
4949 return ;
5050 case Value::value_t ::object:
51- handler .begin_object ();
51+ consumer .begin_object ();
5252 for ( typename Value::const_iterator it = v.begin (); it != v.end (); ++it ) {
53- handler .key ( it.key () );
54- tao::json::nlohmann::traverse_value ( it.value (), handler );
55- handler .member ();
53+ consumer .key ( it.key () );
54+ tao::json::nlohmann::from_value ( it.value (), consumer );
55+ consumer .member ();
5656 }
57- handler .end_object ();
57+ consumer .end_object ();
5858 return ;
5959 }
6060 throw std::logic_error ( " invalid value for type()" ); // LCOV_EXCL_LINE
0 commit comments