| 4218 | ////////////////////// |
| 4219 | |
| 4220 | struct data |
| 4221 | { |
| 4222 | /// the type of the current element |
| 4223 | value_t m_type = value_t::null; |
| 4224 | |
| 4225 | /// the value of the current element |
| 4226 | json_value m_value = {}; |
| 4227 | |
| 4228 | data(const value_t v) |
| 4229 | : m_type(v), m_value(v) |
| 4230 | { |
| 4231 | } |
| 4232 | |
| 4233 | data(size_type cnt, const basic_json& val) |
| 4234 | : m_type(value_t::array) |
| 4235 | { |
| 4236 | m_value.array = create<array_t>(cnt, val); |
| 4237 | } |
| 4238 | |
| 4239 | data() noexcept = default; |
| 4240 | data(data&&) noexcept = default; |
| 4241 | data(const data&) noexcept = delete; |
| 4242 | data& operator=(data&&) noexcept = delete; |
| 4243 | data& operator=(const data&) noexcept = delete; |
| 4244 | |
| 4245 | ~data() noexcept |
| 4246 | { |
| 4247 | m_value.destroy(m_type); |
| 4248 | } |
| 4249 | }; |
| 4250 | |
| 4251 | data m_data = {}; |
| 4252 | |