MCPcopy Create free account
hub / github.com/ChaiScript/ChaiScript / dump

Method dump

include/chaiscript/utility/json.hpp:383–423  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

381 }
382
383 std::string dump( long depth = 1, std::string tab = " ") const {
384 switch( internal.Type ) {
385 case Class::Null:
386 return "null";
387 case Class::Object: {
388 std::string pad = "";
389 for( long i = 0; i < depth; ++i, pad += tab ) { }
390
391 std::string s = "{\n";
392 bool skip = true;
393 for( auto &p : *internal.Map ) {
394 if( !skip ) { s += ",\n"; }
395 s += ( pad + "\"" + json_escape(p.first) + "\" : " + p.second.dump( depth + 1, tab ) );
396 skip = false;
397 }
398 s += ( "\n" + pad.erase( 0, 2 ) + "}" ) ;
399 return s;
400 }
401 case Class::Array: {
402 std::string s = "[";
403 bool skip = true;
404 for( auto &p : *internal.List ) {
405 if( !skip ) { s += ", "; }
406 s += p.dump( depth + 1, tab );
407 skip = false;
408 }
409 s += "]";
410 return s;
411 }
412 case Class::String:
413 return "\"" + json_escape( *internal.String ) + "\"";
414 case Class::Floating:
415 return std::to_string( internal.Float );
416 case Class::Integral:
417 return std::to_string( internal.Int );
418 case Class::Boolean:
419 return internal.Bool ? "true" : "false";
420 }
421
422 throw std::runtime_error("Unhandled JSON type");
423 }
424
425
426 private:

Callers 3

check_for_todos.rbFile · 0.80
check_for_tabs.rbFile · 0.80
to_jsonMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected