MCPcopy Create free account
hub / github.com/deathkiller/jazz2-native / validate

Method validate

Sources/Dependencies/jsoncpp/writer.cpp:674–733  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

672 }
673
674 bool StreamWriterBuilder::validate(Json::Value* invalid) const {
675#ifdef JSONCPP_HAS_STRING_VIEW
676 static const auto& valid_keys = *new std::set<std::string_view>
677#else
678 static const auto & valid_keys = *new std::set<StringContainer>
679#endif
680 {
681 "indentation",
682 "commentStyle",
683 "enableYAMLCompatibility",
684 "dropNullPlaceholders",
685 "useSpecialFloats",
686 "emitUTF8",
687 "precision",
688 "precisionType",
689 };
690 for (auto si = settings_.begin(); si != settings_.end(); ++si) {
691 auto key = si.name();
692 if (valid_keys.count(key))
693 continue;
694 if (invalid)
695 (*invalid)[key] = *si;
696 else
697 return false;
698 }
699 return invalid ? invalid->empty() : true;
700 }
701
702 Value& StreamWriterBuilder::operator[](const StringContainer& key) {
703 return settings_[key];
704 }
705 // static
706 void StreamWriterBuilder::setDefaults(Json::Value* settings) {
707 //! [StreamWriterBuilderDefaults]
708 (*settings)["commentStyle"] = "All";
709 (*settings)["indentation"] = "\t";
710 (*settings)["enableYAMLCompatibility"] = false;
711 (*settings)["dropNullPlaceholders"] = true;
712 (*settings)["useSpecialFloats"] = false;
713 (*settings)["emitUTF8"] = true;
714 (*settings)["precision"] = 17;
715 (*settings)["precisionType"] = "significant";
716 //! [StreamWriterBuilderDefaults]
717 }
718
719 StringContainer writeString(StreamWriter::Factory const& factory, Value const& root) {
720 OStringStream sout;
721 StreamWriterPtr const writer(factory.newStreamWriter());
722 writer->write(root, &sout);
723 return std::move(sout).str();
724 }
725
726 OStream& operator<<(OStream& sout, Value const& root) {
727 StreamWriterBuilder builder;
728 StreamWriterPtr const writer(builder.newStreamWriter());
729 writer->write(root, &sout);
730 return sout;
731 }

Callers

nothing calls this directly

Calls 7

newStreamWriterMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
nameMethod · 0.45
countMethod · 0.45
emptyMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected