Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:38:58

0001 //
0002 // Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
0003 //
0004 // Distributed under the Boost Software License, Version 1.0. (See accompanying
0005 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0006 //
0007 // Official repository: https://github.com/boostorg/json
0008 //
0009 
0010 #ifndef BOOST_JSON_DETAIL_IMPL_HANDLER_HPP
0011 #define BOOST_JSON_DETAIL_IMPL_HANDLER_HPP
0012 
0013 #include <boost/json/detail/handler.hpp>
0014 #include <utility>
0015 
0016 namespace boost {
0017 namespace json {
0018 namespace detail {
0019 
0020 template<class... Args>
0021 handler::
0022 handler(Args&&... args)
0023     : st(std::forward<Args>(args)...)
0024 {
0025 }
0026 
0027 bool
0028 handler::
0029 on_document_begin(
0030     error_code&)
0031 {
0032     return true;
0033 }
0034 
0035 bool
0036 handler::
0037 on_document_end(
0038     error_code&)
0039 {
0040     return true;
0041 }
0042 
0043 bool
0044 handler::
0045 on_object_begin(
0046     error_code&)
0047 {
0048     return true;
0049 }
0050 
0051 bool
0052 handler::
0053 on_object_end(
0054     std::size_t n,
0055     error_code&)
0056 {
0057     st.push_object(n);
0058     return true;
0059 }
0060 
0061 bool
0062 handler::
0063 on_array_begin(
0064     error_code&)
0065 {
0066     return true;
0067 }
0068 
0069 bool
0070 handler::
0071 on_array_end(
0072     std::size_t n,
0073     error_code&)
0074 {
0075     st.push_array(n);
0076     return true;
0077 }
0078 
0079 bool
0080 handler::
0081 on_key_part(
0082     string_view s,
0083     std::size_t,
0084     error_code&)
0085 {
0086     st.push_chars(s);
0087     return true;
0088 }
0089         
0090 bool
0091 handler::
0092 on_key(
0093     string_view s,
0094     std::size_t,
0095     error_code&)
0096 {
0097     st.push_key(s);
0098     return true;
0099 }
0100         
0101 bool
0102 handler::
0103 on_string_part(
0104     string_view s,
0105     std::size_t, 
0106     error_code&)
0107 {
0108     st.push_chars(s);
0109     return true;
0110 }
0111 
0112 bool
0113 handler::
0114 on_string(
0115     string_view s,
0116     std::size_t, 
0117     error_code&)
0118 {
0119     st.push_string(s);
0120     return true;
0121 }
0122 
0123 bool
0124 handler::
0125 on_number_part(
0126     string_view,
0127     error_code&)
0128 {
0129     return true;
0130 }
0131 
0132 bool
0133 handler::
0134 on_int64(
0135     std::int64_t i,
0136     string_view,
0137     error_code&)
0138 {
0139     st.push_int64(i);
0140     return true;
0141 }
0142         
0143 bool
0144 handler::
0145 on_uint64(
0146     std::uint64_t u,
0147     string_view,
0148     error_code&)
0149 {
0150     st.push_uint64(u);
0151     return true;
0152 }
0153 
0154 bool
0155 handler::
0156 on_double(
0157     double d,
0158     string_view,
0159     error_code&)
0160 {
0161     st.push_double(d);
0162     return true;
0163 }
0164         
0165 bool
0166 handler::
0167 on_bool(
0168     bool b,
0169     error_code&)
0170 {
0171     st.push_bool(b);
0172     return true;
0173 }
0174 
0175 bool
0176 handler::
0177 on_null(error_code&)
0178 {
0179     st.push_null();
0180     return true;
0181 }
0182 
0183 bool
0184 handler::
0185 on_comment_part(
0186     string_view,
0187     error_code&)
0188 {
0189     return true;
0190 }
0191         
0192 bool
0193 handler::
0194 on_comment(
0195     string_view, error_code&)
0196 {
0197     return true;
0198 }
0199 
0200 } // detail
0201 } // namespace json
0202 } // namespace boost
0203 
0204 #endif