/* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #include "../ATDWriter.h" typedef ATDWriter::JsonWriter JsonWriter; typedef JsonWriter::ObjectScope ObjectScope; typedef JsonWriter::ArrayScope ArrayScope; typedef JsonWriter::VariantScope VariantScope; typedef JsonWriter::TupleScope TupleScope; int main(int argc, char **argv) { const struct ATDWriter::ATDWriterOptions jsonWriterOptions = { .useYojson = false, .prettifyJson = true, }; const struct ATDWriter::ATDWriterOptions yojsonWriterOptions = { .useYojson = true, .prettifyJson = true, }; { JsonWriter OF(std::cout, yojsonWriterOptions); OF.emitInteger(100000); } { JsonWriter OF(std::cout, yojsonWriterOptions); OF.emitInteger(-100000); } { JsonWriter OF(std::cout, yojsonWriterOptions); OF.emitString("Hello"); } { JsonWriter OF(std::cout, yojsonWriterOptions); OF.emitBoolean(true); } { JsonWriter OF(std::cout, yojsonWriterOptions); ArrayScope Scope(OF, 3); OF.emitString("Hello"); OF.emitBoolean(true); OF.emitInteger(100000); } { JsonWriter OF(std::cout, yojsonWriterOptions); ObjectScope Scope(OF, 4); // 4 is larger than the actual size on purpose OF.emitTag("string"); OF.emitString("Hello"); OF.emitTag("boolean"); OF.emitBoolean(true); OF.emitTag("integer"); OF.emitInteger(100000); } { JsonWriter OF(std::cout, yojsonWriterOptions); ObjectScope Scope(OF, 2); OF.emitTag("integer"); OF.emitInteger(100000); OF.emitTag("array"); { ArrayScope Scope(OF, 2); OF.emitInteger(1); OF.emitInteger(2); } } { JsonWriter OF(std::cout, jsonWriterOptions); TupleScope Scope(OF, 2); OF.emitSimpleVariant("zero"); { VariantScope Scope(OF, "succ"); { VariantScope Scope(OF, "pred"); OF.emitSimpleVariant("zero"); } } } { JsonWriter OF(std::cout, yojsonWriterOptions); TupleScope Scope(OF, 2); OF.emitSimpleVariant("zero"); { VariantScope Scope(OF, "succ"); { VariantScope Scope(OF, "pred"); { VariantScope Scope(OF, "eval"); { TupleScope Scope(OF, 2); OF.emitString("f"); OF.emitString("\"3\t4\n\""); } } } } } return 0; }