MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / GenerateContainers

Method GenerateContainers

source/generator_kotlin.cpp:4636–4686  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4634}
4635
4636void GeneratorKotlin::GenerateContainers(const std::shared_ptr<Package>& p, bool final)
4637{
4638 std::string domain = (p->domain && !p->domain->empty()) ? (*p->domain + ".") : "";
4639 CppCommon::Path path = CppCommon::Path(_output) / CreatePackagePath(domain, *p->name);
4640
4641 // Create package path
4642 CppCommon::Directory::CreateTree(path);
4643
4644 if (p->body)
4645 {
4646 // Check all structs in the package
4647 for (const auto& s : p->body->structs)
4648 {
4649 if (s->body)
4650 {
4651 // Check all fields in the struct
4652 for (const auto& field : s->body->fields)
4653 {
4654 if (field->array)
4655 {
4656 if (final)
4657 GenerateFBEFinalModelArray(domain, *p->name, (field->optional ? "Optional" : "") + ConvertTypeFieldName(*field->type), ConvertTypeFieldType(domain, *field->type, field->optional), *field->type, field->optional, ConvertTypeFieldDeclaration(domain, *field->type, field->optional, final));
4658 else
4659 GenerateFBEFieldModelArray(domain, *p->name, (field->optional ? "Optional" : "") + ConvertTypeFieldName(*field->type), ConvertTypeFieldType(domain, *field->type, field->optional), *field->type, field->optional, ConvertTypeFieldDeclaration(domain, *field->type, field->optional, final));
4660 }
4661 if (field->vector || field->list || field->set)
4662 {
4663 if (final)
4664 GenerateFBEFinalModelVector(domain, *p->name, (field->optional ? "Optional" : "") + ConvertTypeFieldName(*field->type), ConvertTypeFieldType(domain, *field->type, field->optional), ConvertTypeFieldDeclaration(domain, *field->type, field->optional, final));
4665 else
4666 GenerateFBEFieldModelVector(domain, *p->name, (field->optional ? "Optional" : "") + ConvertTypeFieldName(*field->type), ConvertTypeFieldType(domain, *field->type, field->optional), ConvertTypeFieldDeclaration(domain, *field->type, field->optional, final));
4667 }
4668 if (field->map || field->hash)
4669 {
4670 if (final)
4671 GenerateFBEFinalModelMap(domain, *p->name, ConvertTypeFieldName(*field->key), ConvertTypeFieldType(domain, *field->key, false), ConvertTypeFieldDeclaration(domain, *field->key, false, final), (field->optional ? "Optional" : "") + ConvertTypeFieldName(*field->type), ConvertTypeFieldType(domain, *field->type, field->optional), ConvertTypeFieldDeclaration(domain, *field->type, field->optional, final));
4672 else
4673 GenerateFBEFieldModelMap(domain, *p->name, ConvertTypeFieldName(*field->key), ConvertTypeFieldType(domain, *field->key, false), ConvertTypeFieldDeclaration(domain, *field->key, false, final), (field->optional ? "Optional" : "") + ConvertTypeFieldName(*field->type), ConvertTypeFieldType(domain, *field->type, field->optional), ConvertTypeFieldDeclaration(domain, *field->type, field->optional, final));
4674 }
4675 if (field->optional)
4676 {
4677 if (final)
4678 GenerateFBEFinalModelOptional(domain, *p->name, ConvertTypeFieldName(*field->type), ConvertTypeFieldType(domain, *field->type, field->optional), ConvertTypeFieldDeclaration(domain, *field->type, false, final));
4679 else
4680 GenerateFBEFieldModelOptional(domain, *p->name, ConvertTypeFieldName(*field->type), ConvertTypeFieldType(domain, *field->type, field->optional), ConvertTypeFieldDeclaration(domain, *field->type, false, final));
4681 }
4682 }
4683 }
4684 }
4685 }
4686}
4687
4688void GeneratorKotlin::GeneratePackage(const std::shared_ptr<Package>& p)
4689{

Callers

nothing calls this directly

Calls 1

emptyMethod · 0.45

Tested by

no test coverage detected