The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .gitignore
├── CMakeLists.txt
├── CONTRIBUTORS
├── LICENSE
├── Makefile
├── README.md
├── cmake
    └── ios.toolchain.cmake
├── common.gypi
├── deps
    └── java
    │   ├── CREDITS.md
    │   ├── jsr305-3.0.0.jar
    │   └── test
    │       ├── hamcrest-core-1.3.jar
    │       └── junit-4.11.jar
├── example-with-packages
    └── textsort
    │   └── generated-src
    │       └── objc
    │           └── TXSTextboxListener+Private.mm
├── example
    ├── Makefile
    ├── README.md
    ├── android
    │   ├── .gitignore
    │   ├── .idea
    │   │   ├── .name
    │   │   ├── compiler.xml
    │   │   ├── copyright
    │   │   │   └── profiles_settings.xml
    │   │   ├── encodings.xml
    │   │   ├── gradle.xml
    │   │   ├── misc.xml
    │   │   ├── modules.xml
    │   │   └── vcs.xml
    │   ├── android.iml
    │   ├── app
    │   │   ├── .gitignore
    │   │   ├── app.iml
    │   │   ├── build.gradle
    │   │   ├── jni
    │   │   │   ├── Android.mk
    │   │   │   └── Application.mk
    │   │   ├── proguard-rules.pro
    │   │   └── src
    │   │   │   └── main
    │   │   │       ├── AndroidManifest.xml
    │   │   │       └── res
    │   │   │           ├── drawable-hdpi
    │   │   │               └── ic_launcher.png
    │   │   │           ├── drawable-mdpi
    │   │   │               └── ic_launcher.png
    │   │   │           ├── drawable-xhdpi
    │   │   │               └── ic_launcher.png
    │   │   │           ├── drawable-xxhdpi
    │   │   │               └── ic_launcher.png
    │   │   │           ├── layout
    │   │   │               └── activity_main.xml
    │   │   │           ├── values-w820dp
    │   │   │               └── dimens.xml
    │   │   │           └── values
    │   │   │               ├── dimens.xml
    │   │   │               ├── strings.xml
    │   │   │               └── styles.xml
    │   ├── build.gradle
    │   ├── gradle.properties
    │   ├── gradle
    │   │   └── wrapper
    │   │   │   ├── gradle-wrapper.jar
    │   │   │   └── gradle-wrapper.properties
    │   ├── gradlew
    │   ├── gradlew.bat
    │   └── settings.gradle
    ├── example.djinni
    ├── example.yaml
    ├── generated-src
    │   ├── cpp
    │   │   ├── item_list.hpp
    │   │   ├── sort_items.hpp
    │   │   ├── sort_order.hpp
    │   │   └── textbox_listener.hpp
    │   ├── java
    │   │   └── com
    │   │   │   └── dropbox
    │   │   │       └── textsort
    │   │   │           ├── ItemList.java
    │   │   │           ├── SortItems.java
    │   │   │           ├── SortOrder.java
    │   │   │           └── TextboxListener.java
    │   ├── jni
    │   │   ├── NativeItemList.cpp
    │   │   ├── NativeItemList.hpp
    │   │   ├── NativeSortItems.cpp
    │   │   ├── NativeSortItems.hpp
    │   │   ├── NativeSortOrder.hpp
    │   │   ├── NativeTextboxListener.cpp
    │   │   └── NativeTextboxListener.hpp
    │   └── objc
    │   │   ├── TXSItemList+Private.h
    │   │   ├── TXSItemList+Private.mm
    │   │   ├── TXSItemList.h
    │   │   ├── TXSItemList.mm
    │   │   ├── TXSSortItems+Private.h
    │   │   ├── TXSSortItems+Private.mm
    │   │   ├── TXSSortItems.h
    │   │   ├── TXSSortOrder+Private.h
    │   │   ├── TXSSortOrder.h
    │   │   ├── TXSTextboxListener+Private.h
    │   │   ├── TXSTextboxListener+Private.mm
    │   │   ├── TXSTextboxListener.h
    │   │   └── TextSort-Bridging-Header.h
    ├── glob.py
    ├── handwritten-src
    │   ├── cpp
    │   │   ├── sort_items_impl.cpp
    │   │   └── sort_items_impl.hpp
    │   ├── java
    │   │   └── com
    │   │   │   └── dropbox
    │   │   │       └── textsort
    │   │   │           ├── MainActivity.java
    │   │   │           └── TextboxListenerImpl.java
    │   ├── objc
    │   │   ├── TXSAppDelegate.h
    │   │   ├── TXSAppDelegate.m
    │   │   ├── TXSTextboxListenerImpl.h
    │   │   ├── TXSTextboxListenerImpl.m
    │   │   ├── TXSViewController.h
    │   │   ├── TXSViewController.m
    │   │   └── main.mm
    │   └── swift
    │   │   └── TXSTextboxListenerDebugableImpl.swift
    ├── libtextsort.gyp
    ├── local.properties.sample
    ├── localhost
    │   ├── .gitignore
    │   ├── CMakeLists.txt
    │   ├── Dockerfile
    │   ├── README.md
    │   ├── build.xml
    │   ├── handwritten-src
    │   │   └── java
    │   │   │   └── com
    │   │   │       └── dropbox
    │   │   │           └── textsort
    │   │   │               └── SortTest.java
    │   └── run_in_docker.sh
    ├── objc
    │   ├── TextSort.xcodeproj
    │   │   ├── .gitignore
    │   │   ├── project.pbxproj
    │   │   └── xcshareddata
    │   │   │   └── xcschemes
    │   │   │       └── TextSort.xcscheme
    │   ├── TextSort.xcworkspace
    │   │   ├── .gitignore
    │   │   ├── contents.xcworkspacedata
    │   │   └── xcshareddata
    │   │   │   └── IDEWorkspaceChecks.plist
    │   └── TextSort
    │   │   ├── Base.lproj
    │   │       └── Main_iPhone.storyboard
    │   │   ├── Images.xcassets
    │   │       ├── AppIcon.appiconset
    │   │       │   └── Contents.json
    │   │       └── LaunchImage.launchimage
    │   │       │   └── Contents.json
    │   │   ├── TextSort-Info.plist
    │   │   ├── TextSort-Prefix.pch
    │   │   └── en.lproj
    │   │       └── InfoPlist.strings
    └── run_djinni.sh
├── extension-libs
    ├── extension-libs.iml
    ├── jni-exceptions
    │   └── custom_exception_type.cpp
    └── platform-threads
    │   ├── android
    │       └── com
    │       │   └── dropbox
    │       │       └── djinni
    │       │           └── extension_libs
    │       │               └── platform_threads
    │       │                   └── AndroidPlatformThreads.java
    │   ├── cpp
    │       └── platform_threads_impl.hpp
    │   ├── djinni
    │       └── platform-threads.djinni
    │   ├── java
    │       └── com
    │       │   └── dropbox
    │       │       └── djinni
    │       │           └── extension_libs
    │       │               └── platform_threads
    │       │                   └── JavaPlatformThreads.java
    │   ├── objc
    │       ├── DJIObjCPlatformThreads.h
    │       └── DJIObjCPlatformThreads.m
    │   └── platform-threads.gyp
├── intellij-plugin
    ├── .gitignore
    ├── META-INF
    │   └── plugin.xml
    ├── README.md
    ├── djinni.iml
    ├── gen
    │   └── com
    │   │   └── dropbox
    │   │       └── djinni
    │   │           └── ideaplugin
    │   │               ├── parser
    │   │                   ├── DjinniParser.java
    │   │                   └── YamlParser.java
    │   │               └── psi
    │   │                   ├── DjinniBasicType.java
    │   │                   ├── DjinniConstMember.java
    │   │                   ├── DjinniConstNamedValue.java
    │   │                   ├── DjinniConstRecordMemberElement.java
    │   │                   ├── DjinniConstReference.java
    │   │                   ├── DjinniConstValue.java
    │   │                   ├── DjinniDerivingParam.java
    │   │                   ├── DjinniDerivingParamList.java
    │   │                   ├── DjinniEnumMember.java
    │   │                   ├── DjinniEnumTypeVariant.java
    │   │                   ├── DjinniEnumValue.java
    │   │                   ├── DjinniExternStatement.java
    │   │                   ├── DjinniGenerator.java
    │   │                   ├── DjinniGenericBasicType.java
    │   │                   ├── DjinniGenericBasicTypeDualParameter.java
    │   │                   ├── DjinniGenericBasicTypeSingleParameter.java
    │   │                   ├── DjinniImportStatement.java
    │   │                   ├── DjinniInterfaceFunctionParam.java
    │   │                   ├── DjinniInterfaceFunctionParamList.java
    │   │                   ├── DjinniInterfaceMember.java
    │   │                   ├── DjinniInterfaceMemberFunction.java
    │   │                   ├── DjinniInterfaceTypeVariant.java
    │   │                   ├── DjinniPredefinedType.java
    │   │                   ├── DjinniRecordMember.java
    │   │                   ├── DjinniRecordMemberVariable.java
    │   │                   ├── DjinniRecordTypeVariant.java
    │   │                   ├── DjinniTypeDefinition.java
    │   │                   ├── DjinniTypeReference.java
    │   │                   ├── DjinniTypes.java
    │   │                   ├── DjinniVisitor.java
    │   │                   ├── YamlEntry.java
    │   │                   ├── YamlLhs.java
    │   │                   ├── YamlRhs.java
    │   │                   ├── YamlTypes.java
    │   │                   ├── YamlVisitor.java
    │   │                   └── impl
    │   │                       ├── DjinniBasicTypeImpl.java
    │   │                       ├── DjinniConstMemberImpl.java
    │   │                       ├── DjinniConstNamedValueImpl.java
    │   │                       ├── DjinniConstRecordMemberElementImpl.java
    │   │                       ├── DjinniConstReferenceImpl.java
    │   │                       ├── DjinniConstValueImpl.java
    │   │                       ├── DjinniDerivingParamImpl.java
    │   │                       ├── DjinniDerivingParamListImpl.java
    │   │                       ├── DjinniEnumMemberImpl.java
    │   │                       ├── DjinniEnumTypeVariantImpl.java
    │   │                       ├── DjinniEnumValueImpl.java
    │   │                       ├── DjinniExternStatementImpl.java
    │   │                       ├── DjinniGeneratorImpl.java
    │   │                       ├── DjinniGenericBasicTypeDualParameterImpl.java
    │   │                       ├── DjinniGenericBasicTypeImpl.java
    │   │                       ├── DjinniGenericBasicTypeSingleParameterImpl.java
    │   │                       ├── DjinniImportStatementImpl.java
    │   │                       ├── DjinniInterfaceFunctionParamImpl.java
    │   │                       ├── DjinniInterfaceFunctionParamListImpl.java
    │   │                       ├── DjinniInterfaceMemberFunctionImpl.java
    │   │                       ├── DjinniInterfaceMemberImpl.java
    │   │                       ├── DjinniInterfaceTypeVariantImpl.java
    │   │                       ├── DjinniPredefinedTypeImpl.java
    │   │                       ├── DjinniRecordMemberImpl.java
    │   │                       ├── DjinniRecordMemberVariableImpl.java
    │   │                       ├── DjinniRecordTypeVariantImpl.java
    │   │                       ├── DjinniTypeDefinitionImpl.java
    │   │                       ├── DjinniTypeReferenceImpl.java
    │   │                       ├── YamlEntryImpl.java
    │   │                       ├── YamlLhsImpl.java
    │   │                       └── YamlRhsImpl.java
    └── src
    │   └── com
    │       └── dropbox
    │           └── djinni
    │               ├── ideaplugin
    │                   ├── Djinni.bnf
    │                   ├── DjinniAnnotator.java
    │                   ├── DjinniBlock.java
    │                   ├── DjinniBraceMatcher.java
    │                   ├── DjinniChooseByNameContributor.java
    │                   ├── DjinniColorSettingsPage.java
    │                   ├── DjinniCommenter.java
    │                   ├── DjinniCompletionContributor.java
    │                   ├── DjinniCreateTypeDefinitionQuickFix.java
    │                   ├── DjinniExternReference.java
    │                   ├── DjinniFileType.java
    │                   ├── DjinniFileTypeFactory.java
    │                   ├── DjinniFindUsagesProvider.java
    │                   ├── DjinniFoldingBuilder.java
    │                   ├── DjinniFormattingModelBuilder.java
    │                   ├── DjinniIcons.java
    │                   ├── DjinniImportReference.java
    │                   ├── DjinniLanguage.java
    │                   ├── DjinniLexerAdapter.java
    │                   ├── DjinniParserDefinition.java
    │                   ├── DjinniReference.java
    │                   ├── DjinniReferenceContributor.java
    │                   ├── DjinniStructureViewElement.java
    │                   ├── DjinniStructureViewFactory.java
    │                   ├── DjinniStructureViewModel.java
    │                   ├── DjinniSyntaxHighlighter.java
    │                   ├── DjinniSyntaxHighlighterFactory.java
    │                   ├── DjinniUtil.java
    │                   ├── DjinniValueReference.java
    │                   ├── YamlFileType.java
    │                   ├── YamlLanguage.java
    │                   ├── YamlLexer.flex
    │                   ├── YamlLexer.java
    │                   ├── YamlLexerAdapter.java
    │                   ├── YamlParserDefinition.java
    │                   ├── _DjinniLexer.flex
    │                   ├── _DjinniLexer.java
    │                   ├── psi
    │                   │   ├── DjinniElementFactory.java
    │                   │   ├── DjinniElementType.java
    │                   │   ├── DjinniFile.java
    │                   │   ├── DjinniNamedElement.java
    │                   │   ├── DjinniTokenType.java
    │                   │   ├── YamlElementType.java
    │                   │   ├── YamlFile.java
    │                   │   ├── YamlTokenType.java
    │                   │   └── impl
    │                   │   │   ├── DjinniImportStatementBaseImpl.java
    │                   │   │   ├── DjinniNamedElementImpl.java
    │                   │   │   ├── DjinniPsiImplUtil.java
    │                   │   │   ├── DjinniReferenceImpl.java
    │                   │   │   └── YamlPsiImplUtil.java
    │                   └── yaml.bnf
    │               └── resources
    │                   └── djinni.png
├── src
    ├── .gitignore
    ├── .idea
    │   ├── .name
    │   ├── compiler.xml
    │   ├── copyright
    │   │   └── profiles_settings.xml
    │   ├── encodings.xml
    │   ├── highlighting.xml
    │   ├── inspectionProfiles
    │   │   ├── Project_Default.xml
    │   │   └── profiles_settings.xml
    │   ├── libraries
    │   │   ├── SBT__com_github_scopt_scopt_2_11_3_2_0_jar.xml
    │   │   ├── SBT__org_scala_lang_modules_scala_parser_combinators_2_11_1_0_1_jar.xml
    │   │   ├── SBT__org_scala_lang_scala_library_2_11_0_jar.xml
    │   │   └── SBT__org_yaml_snakeyaml_1_15_jar.xml
    │   ├── misc.xml
    │   ├── modules.xml
    │   ├── modules
    │   │   ├── src-build.iml
    │   │   └── src.iml
    │   ├── runConfigurations
    │   │   ├── djinni_Main__Example_.xml
    │   │   └── djinni_Main__Test_Suite_.xml
    │   ├── sbt.xml
    │   ├── scala_compiler.xml
    │   ├── uiDesigner.xml
    │   └── vcs.xml
    ├── ReadMe.txt
    ├── build
    ├── build.sbt
    ├── project
    │   ├── build.properties
    │   └── plugins.sbt
    ├── run
    ├── run-assume-built
    ├── source
    │   ├── BaseObjcGenerator.scala
    │   ├── CppGenerator.scala
    │   ├── CppMarshal.scala
    │   ├── JNIGenerator.scala
    │   ├── JNIMarshal.scala
    │   ├── JavaGenerator.scala
    │   ├── JavaMarshal.scala
    │   ├── Main.scala
    │   ├── Marshal.scala
    │   ├── ObjcGenerator.scala
    │   ├── ObjcMarshal.scala
    │   ├── ObjcppGenerator.scala
    │   ├── ObjcppMarshal.scala
    │   ├── SwiftBridgingHeaderGenerator.scala
    │   ├── YamlGenerator.scala
    │   ├── ast.scala
    │   ├── generator.scala
    │   ├── meta.scala
    │   ├── parser.scala
    │   ├── resolver.scala
    │   ├── syntax.scala
    │   └── writer.scala
    └── support
    │   ├── sbt
    │   ├── sbt-launch.jar
    │   ├── sbt.resolvers.properties
    │   └── sbt.security.policy
├── support-lib
    ├── .gitignore
    ├── djinni_common.hpp
    ├── ios-build-support-lib.sh
    ├── java
    │   └── com
    │   │   └── dropbox
    │   │       └── djinni
    │   │           └── NativeLibLoader.java
    ├── jni
    │   ├── Marshal.hpp
    │   ├── djinni_main.cpp
    │   ├── djinni_support.cpp
    │   └── djinni_support.hpp
    ├── objc
    │   ├── DJICppWrapperCache+Private.h
    │   ├── DJIError.h
    │   ├── DJIError.mm
    │   ├── DJIMarshal+Private.h
    │   ├── DJIObjcWrapperCache+Private.h
    │   └── DJIProxyCaches.mm
    ├── proxy_cache_impl.hpp
    ├── proxy_cache_interface.hpp
    ├── support-lib.iml
    └── support_lib.gyp
├── test-suite
    ├── Makefile
    ├── README.md
    ├── djinni-packages
    │   └── package1
    │   │   └── generated-src
    │   │       └── objc
    │   │           └── DBInnerClass+Private.mm
    ├── djinni
    │   ├── all.djinni
    │   ├── client_interface.djinni
    │   ├── common.djinni
    │   ├── constant_enum.djinni
    │   ├── constants.djinni
    │   ├── derivings.djinni
    │   ├── enum.djinni
    │   ├── enum_flags.djinni
    │   ├── exception.djinni
    │   ├── extended_record.djinni
    │   ├── map.djinni
    │   ├── multiple_inheritance.djinni
    │   ├── nested_collection.djinni
    │   ├── parcelable.djinni
    │   ├── primitive_list.djinni
    │   ├── primtypes.djinni
    │   ├── relative_paths.djinni
    │   ├── set.djinni
    │   ├── single_language_interfaces.djinni
    │   ├── test.djinni
    │   ├── user_token.djinni
    │   ├── varnames.djinni
    │   ├── vendor
    │   │   └── third-party
    │   │   │   ├── date.djinni
    │   │   │   ├── date.yaml
    │   │   │   ├── duration.djinni
    │   │   │   └── duration.yaml
    │   ├── wchar_test.djinni
    │   └── yaml-test.djinni
    ├── generated-src
    │   ├── cpp
    │   │   ├── Conflict.hpp
    │   │   ├── _varname_interface_.hpp
    │   │   ├── _varname_record_.hpp
    │   │   ├── access_flags.hpp
    │   │   ├── assorted_primitives.cpp
    │   │   ├── assorted_primitives.hpp
    │   │   ├── client_interface.hpp
    │   │   ├── client_returned_record.hpp
    │   │   ├── color.hpp
    │   │   ├── conflict_user.hpp
    │   │   ├── constant_enum.hpp
    │   │   ├── constant_interface_with_enum.cpp
    │   │   ├── constant_interface_with_enum.hpp
    │   │   ├── constant_record.hpp
    │   │   ├── constant_with_enum.cpp
    │   │   ├── constant_with_enum.hpp
    │   │   ├── constants.cpp
    │   │   ├── constants.hpp
    │   │   ├── constants_interface.cpp
    │   │   ├── constants_interface.hpp
    │   │   ├── cpp_exception.hpp
    │   │   ├── date_record.cpp
    │   │   ├── date_record.hpp
    │   │   ├── empty_flags.hpp
    │   │   ├── empty_record.hpp
    │   │   ├── enum_usage_interface.hpp
    │   │   ├── enum_usage_record.hpp
    │   │   ├── extended_record_base.cpp
    │   │   ├── extended_record_base.hpp
    │   │   ├── extern_interface_1.hpp
    │   │   ├── extern_interface_2.hpp
    │   │   ├── extern_record_with_derivings.cpp
    │   │   ├── extern_record_with_derivings.hpp
    │   │   ├── first_listener.hpp
    │   │   ├── flag_roundtrip.hpp
    │   │   ├── interface_using_extended_record.cpp
    │   │   ├── interface_using_extended_record.hpp
    │   │   ├── java_only_listener.hpp
    │   │   ├── listener_caller.hpp
    │   │   ├── map_date_record.hpp
    │   │   ├── map_list_record.hpp
    │   │   ├── map_record.hpp
    │   │   ├── nested_collection.hpp
    │   │   ├── objc_only_listener.hpp
    │   │   ├── parcelable_list.hpp
    │   │   ├── parcelable_list_map_set.hpp
    │   │   ├── parcelable_list_set.hpp
    │   │   ├── parcelable_map.hpp
    │   │   ├── parcelable_map_list.hpp
    │   │   ├── parcelable_map_set.hpp
    │   │   ├── parcelable_optional_list.hpp
    │   │   ├── parcelable_optional_map.hpp
    │   │   ├── parcelable_optional_set.hpp
    │   │   ├── parcelable_primitives.hpp
    │   │   ├── parcelable_set.hpp
    │   │   ├── primitive_list.hpp
    │   │   ├── record_using_extended_record.cpp
    │   │   ├── record_using_extended_record.hpp
    │   │   ├── record_with_derivings.cpp
    │   │   ├── record_with_derivings.hpp
    │   │   ├── record_with_duration_and_derivings.cpp
    │   │   ├── record_with_duration_and_derivings.hpp
    │   │   ├── record_with_flags.hpp
    │   │   ├── record_with_nested_derivings.cpp
    │   │   ├── record_with_nested_derivings.hpp
    │   │   ├── return_one.hpp
    │   │   ├── return_two.hpp
    │   │   ├── reverse_client_interface.hpp
    │   │   ├── sample_interface.hpp
    │   │   ├── second_listener.hpp
    │   │   ├── set_record.hpp
    │   │   ├── test_duration.hpp
    │   │   ├── test_helpers.hpp
    │   │   ├── test_optional_extern_interface_record.hpp
    │   │   ├── user_token.hpp
    │   │   ├── uses_single_language_listeners.hpp
    │   │   ├── wchar_test_helpers.hpp
    │   │   └── wchar_test_rec.hpp
    │   ├── inFileList.txt
    │   ├── java
    │   │   └── com
    │   │   │   └── dropbox
    │   │   │       └── djinni
    │   │   │           └── test
    │   │   │               ├── AccessFlags.java
    │   │   │               ├── AssortedPrimitives.java
    │   │   │               ├── ClientInterface.java
    │   │   │               ├── ClientReturnedRecord.java
    │   │   │               ├── Color.java
    │   │   │               ├── Conflict.java
    │   │   │               ├── ConflictUser.java
    │   │   │               ├── ConstantEnum.java
    │   │   │               ├── ConstantInterfaceWithEnum.java
    │   │   │               ├── ConstantRecord.java
    │   │   │               ├── ConstantWithEnum.java
    │   │   │               ├── Constants.java
    │   │   │               ├── ConstantsInterface.java
    │   │   │               ├── CppException.java
    │   │   │               ├── DateRecord.java
    │   │   │               ├── EmptyFlags.java
    │   │   │               ├── EmptyRecord.java
    │   │   │               ├── EnumUsageInterface.java
    │   │   │               ├── EnumUsageRecord.java
    │   │   │               ├── ExtendedRecord.java
    │   │   │               ├── ExternInterface1.java
    │   │   │               ├── ExternInterface2.java
    │   │   │               ├── ExternRecordWithDerivings.java
    │   │   │               ├── FirstListener.java
    │   │   │               ├── FlagRoundtrip.java
    │   │   │               ├── InterfaceUsingExtendedRecord.java
    │   │   │               ├── JavaOnlyListener.java
    │   │   │               ├── ListenerCaller.java
    │   │   │               ├── MapDateRecord.java
    │   │   │               ├── MapListRecord.java
    │   │   │               ├── MapRecord.java
    │   │   │               ├── NestedCollection.java
    │   │   │               ├── ObjcOnlyListener.java
    │   │   │               ├── ParcelableList.java
    │   │   │               ├── ParcelableListMapSet.java
    │   │   │               ├── ParcelableListSet.java
    │   │   │               ├── ParcelableMap.java
    │   │   │               ├── ParcelableMapList.java
    │   │   │               ├── ParcelableMapSet.java
    │   │   │               ├── ParcelableOptionalList.java
    │   │   │               ├── ParcelableOptionalMap.java
    │   │   │               ├── ParcelableOptionalSet.java
    │   │   │               ├── ParcelablePrimitives.java
    │   │   │               ├── ParcelableSet.java
    │   │   │               ├── PrimitiveList.java
    │   │   │               ├── RecordUsingExtendedRecord.java
    │   │   │               ├── RecordWithDerivings.java
    │   │   │               ├── RecordWithDurationAndDerivings.java
    │   │   │               ├── RecordWithFlags.java
    │   │   │               ├── RecordWithNestedDerivings.java
    │   │   │               ├── ReturnOne.java
    │   │   │               ├── ReturnTwo.java
    │   │   │               ├── ReverseClientInterface.java
    │   │   │               ├── SampleInterface.java
    │   │   │               ├── SecondListener.java
    │   │   │               ├── SetRecord.java
    │   │   │               ├── TestDuration.java
    │   │   │               ├── TestHelpers.java
    │   │   │               ├── TestOptionalExternInterfaceRecord.java
    │   │   │               ├── UserToken.java
    │   │   │               ├── UsesSingleLanguageListeners.java
    │   │   │               ├── VarnameInterface.java
    │   │   │               ├── VarnameRecord.java
    │   │   │               ├── WcharTestHelpers.java
    │   │   │               └── WcharTestRec.java
    │   ├── jni
    │   │   ├── NativeAccessFlags.hpp
    │   │   ├── NativeAssortedPrimitives.cpp
    │   │   ├── NativeAssortedPrimitives.hpp
    │   │   ├── NativeClientInterface.cpp
    │   │   ├── NativeClientInterface.hpp
    │   │   ├── NativeClientReturnedRecord.cpp
    │   │   ├── NativeClientReturnedRecord.hpp
    │   │   ├── NativeColor.hpp
    │   │   ├── NativeConflict.cpp
    │   │   ├── NativeConflict.hpp
    │   │   ├── NativeConflictUser.cpp
    │   │   ├── NativeConflictUser.hpp
    │   │   ├── NativeConstantEnum.hpp
    │   │   ├── NativeConstantInterfaceWithEnum.cpp
    │   │   ├── NativeConstantInterfaceWithEnum.hpp
    │   │   ├── NativeConstantRecord.cpp
    │   │   ├── NativeConstantRecord.hpp
    │   │   ├── NativeConstantWithEnum.cpp
    │   │   ├── NativeConstantWithEnum.hpp
    │   │   ├── NativeConstants.cpp
    │   │   ├── NativeConstants.hpp
    │   │   ├── NativeConstantsInterface.cpp
    │   │   ├── NativeConstantsInterface.hpp
    │   │   ├── NativeCppException.cpp
    │   │   ├── NativeCppException.hpp
    │   │   ├── NativeDateRecord.cpp
    │   │   ├── NativeDateRecord.hpp
    │   │   ├── NativeEmptyFlags.hpp
    │   │   ├── NativeEmptyRecord.cpp
    │   │   ├── NativeEmptyRecord.hpp
    │   │   ├── NativeEnumUsageInterface.cpp
    │   │   ├── NativeEnumUsageInterface.hpp
    │   │   ├── NativeEnumUsageRecord.cpp
    │   │   ├── NativeEnumUsageRecord.hpp
    │   │   ├── NativeExtendedRecord.cpp
    │   │   ├── NativeExtendedRecord.hpp
    │   │   ├── NativeExternInterface1.cpp
    │   │   ├── NativeExternInterface1.hpp
    │   │   ├── NativeExternInterface2.cpp
    │   │   ├── NativeExternInterface2.hpp
    │   │   ├── NativeExternRecordWithDerivings.cpp
    │   │   ├── NativeExternRecordWithDerivings.hpp
    │   │   ├── NativeFirstListener.cpp
    │   │   ├── NativeFirstListener.hpp
    │   │   ├── NativeFlagRoundtrip.cpp
    │   │   ├── NativeFlagRoundtrip.hpp
    │   │   ├── NativeInterfaceUsingExtendedRecord.cpp
    │   │   ├── NativeInterfaceUsingExtendedRecord.hpp
    │   │   ├── NativeJavaOnlyListener.cpp
    │   │   ├── NativeJavaOnlyListener.hpp
    │   │   ├── NativeListenerCaller.cpp
    │   │   ├── NativeListenerCaller.hpp
    │   │   ├── NativeMapDateRecord.cpp
    │   │   ├── NativeMapDateRecord.hpp
    │   │   ├── NativeMapListRecord.cpp
    │   │   ├── NativeMapListRecord.hpp
    │   │   ├── NativeMapRecord.cpp
    │   │   ├── NativeMapRecord.hpp
    │   │   ├── NativeNestedCollection.cpp
    │   │   ├── NativeNestedCollection.hpp
    │   │   ├── NativeObjcOnlyListener.cpp
    │   │   ├── NativeObjcOnlyListener.hpp
    │   │   ├── NativeParcelableList.cpp
    │   │   ├── NativeParcelableList.hpp
    │   │   ├── NativeParcelableListMapSet.cpp
    │   │   ├── NativeParcelableListMapSet.hpp
    │   │   ├── NativeParcelableListSet.cpp
    │   │   ├── NativeParcelableListSet.hpp
    │   │   ├── NativeParcelableMap.cpp
    │   │   ├── NativeParcelableMap.hpp
    │   │   ├── NativeParcelableMapList.cpp
    │   │   ├── NativeParcelableMapList.hpp
    │   │   ├── NativeParcelableMapSet.cpp
    │   │   ├── NativeParcelableMapSet.hpp
    │   │   ├── NativeParcelableOptionalList.cpp
    │   │   ├── NativeParcelableOptionalList.hpp
    │   │   ├── NativeParcelableOptionalMap.cpp
    │   │   ├── NativeParcelableOptionalMap.hpp
    │   │   ├── NativeParcelableOptionalSet.cpp
    │   │   ├── NativeParcelableOptionalSet.hpp
    │   │   ├── NativeParcelablePrimitives.cpp
    │   │   ├── NativeParcelablePrimitives.hpp
    │   │   ├── NativeParcelableSet.cpp
    │   │   ├── NativeParcelableSet.hpp
    │   │   ├── NativePrimitiveList.cpp
    │   │   ├── NativePrimitiveList.hpp
    │   │   ├── NativeRecordUsingExtendedRecord.cpp
    │   │   ├── NativeRecordUsingExtendedRecord.hpp
    │   │   ├── NativeRecordWithDerivings.cpp
    │   │   ├── NativeRecordWithDerivings.hpp
    │   │   ├── NativeRecordWithDurationAndDerivings.cpp
    │   │   ├── NativeRecordWithDurationAndDerivings.hpp
    │   │   ├── NativeRecordWithFlags.cpp
    │   │   ├── NativeRecordWithFlags.hpp
    │   │   ├── NativeRecordWithNestedDerivings.cpp
    │   │   ├── NativeRecordWithNestedDerivings.hpp
    │   │   ├── NativeReturnOne.cpp
    │   │   ├── NativeReturnOne.hpp
    │   │   ├── NativeReturnTwo.cpp
    │   │   ├── NativeReturnTwo.hpp
    │   │   ├── NativeReverseClientInterface.cpp
    │   │   ├── NativeReverseClientInterface.hpp
    │   │   ├── NativeSampleInterface.cpp
    │   │   ├── NativeSampleInterface.hpp
    │   │   ├── NativeSecondListener.cpp
    │   │   ├── NativeSecondListener.hpp
    │   │   ├── NativeSetRecord.cpp
    │   │   ├── NativeSetRecord.hpp
    │   │   ├── NativeTestDuration.cpp
    │   │   ├── NativeTestDuration.hpp
    │   │   ├── NativeTestHelpers.cpp
    │   │   ├── NativeTestHelpers.hpp
    │   │   ├── NativeTestOptionalExternInterfaceRecord.cpp
    │   │   ├── NativeTestOptionalExternInterfaceRecord.hpp
    │   │   ├── NativeUserToken.cpp
    │   │   ├── NativeUserToken.hpp
    │   │   ├── NativeUsesSingleLanguageListeners.cpp
    │   │   ├── NativeUsesSingleLanguageListeners.hpp
    │   │   ├── NativeVarnameInterface.cpp
    │   │   ├── NativeVarnameInterface.hpp
    │   │   ├── NativeVarnameRecord.cpp
    │   │   ├── NativeVarnameRecord.hpp
    │   │   ├── NativeWcharTestHelpers.cpp
    │   │   ├── NativeWcharTestHelpers.hpp
    │   │   ├── NativeWcharTestRec.cpp
    │   │   └── NativeWcharTestRec.hpp
    │   ├── objc
    │   │   ├── DBAccessFlags+Private.h
    │   │   ├── DBAccessFlags.h
    │   │   ├── DBAssortedPrimitives+Private.h
    │   │   ├── DBAssortedPrimitives+Private.mm
    │   │   ├── DBAssortedPrimitives.h
    │   │   ├── DBAssortedPrimitives.mm
    │   │   ├── DBClientInterface+Private.h
    │   │   ├── DBClientInterface+Private.mm
    │   │   ├── DBClientInterface.h
    │   │   ├── DBClientReturnedRecord+Private.h
    │   │   ├── DBClientReturnedRecord+Private.mm
    │   │   ├── DBClientReturnedRecord.h
    │   │   ├── DBClientReturnedRecord.mm
    │   │   ├── DBColor+Private.h
    │   │   ├── DBColor.h
    │   │   ├── DBConflict+Private.h
    │   │   ├── DBConflict+Private.mm
    │   │   ├── DBConflict.h
    │   │   ├── DBConflictUser+Private.h
    │   │   ├── DBConflictUser+Private.mm
    │   │   ├── DBConflictUser.h
    │   │   ├── DBConstantEnum+Private.h
    │   │   ├── DBConstantEnum.h
    │   │   ├── DBConstantInterfaceWithEnum+Private.h
    │   │   ├── DBConstantInterfaceWithEnum+Private.mm
    │   │   ├── DBConstantInterfaceWithEnum.h
    │   │   ├── DBConstantInterfaceWithEnum.mm
    │   │   ├── DBConstantRecord+Private.h
    │   │   ├── DBConstantRecord+Private.mm
    │   │   ├── DBConstantRecord.h
    │   │   ├── DBConstantRecord.mm
    │   │   ├── DBConstantWithEnum+Private.h
    │   │   ├── DBConstantWithEnum+Private.mm
    │   │   ├── DBConstantWithEnum.h
    │   │   ├── DBConstantWithEnum.mm
    │   │   ├── DBConstants+Private.h
    │   │   ├── DBConstants+Private.mm
    │   │   ├── DBConstants.h
    │   │   ├── DBConstants.mm
    │   │   ├── DBConstantsInterface+Private.h
    │   │   ├── DBConstantsInterface+Private.mm
    │   │   ├── DBConstantsInterface.h
    │   │   ├── DBConstantsInterface.mm
    │   │   ├── DBCppException+Private.h
    │   │   ├── DBCppException+Private.mm
    │   │   ├── DBCppException.h
    │   │   ├── DBDateRecord+Private.h
    │   │   ├── DBDateRecord+Private.mm
    │   │   ├── DBDateRecord.h
    │   │   ├── DBDateRecord.mm
    │   │   ├── DBEmptyFlags+Private.h
    │   │   ├── DBEmptyFlags.h
    │   │   ├── DBEmptyRecord+Private.h
    │   │   ├── DBEmptyRecord+Private.mm
    │   │   ├── DBEmptyRecord.h
    │   │   ├── DBEmptyRecord.mm
    │   │   ├── DBEnumUsageInterface+Private.h
    │   │   ├── DBEnumUsageInterface+Private.mm
    │   │   ├── DBEnumUsageInterface.h
    │   │   ├── DBEnumUsageRecord+Private.h
    │   │   ├── DBEnumUsageRecord+Private.mm
    │   │   ├── DBEnumUsageRecord.h
    │   │   ├── DBEnumUsageRecord.mm
    │   │   ├── DBExtendedRecord+Private.h
    │   │   ├── DBExtendedRecord+Private.mm
    │   │   ├── DBExtendedRecord.h
    │   │   ├── DBExtendedRecord.mm
    │   │   ├── DBExternInterface1+Private.h
    │   │   ├── DBExternInterface1+Private.mm
    │   │   ├── DBExternInterface1.h
    │   │   ├── DBExternInterface2+Private.h
    │   │   ├── DBExternInterface2+Private.mm
    │   │   ├── DBExternInterface2.h
    │   │   ├── DBExternRecordWithDerivings+Private.h
    │   │   ├── DBExternRecordWithDerivings+Private.mm
    │   │   ├── DBExternRecordWithDerivings.h
    │   │   ├── DBExternRecordWithDerivings.mm
    │   │   ├── DBFirstListener+Private.h
    │   │   ├── DBFirstListener+Private.mm
    │   │   ├── DBFirstListener.h
    │   │   ├── DBFlagRoundtrip+Private.h
    │   │   ├── DBFlagRoundtrip+Private.mm
    │   │   ├── DBFlagRoundtrip.h
    │   │   ├── DBInterfaceUsingExtendedRecord+Private.h
    │   │   ├── DBInterfaceUsingExtendedRecord+Private.mm
    │   │   ├── DBInterfaceUsingExtendedRecord.h
    │   │   ├── DBInterfaceUsingExtendedRecord.mm
    │   │   ├── DBJavaOnlyListener+Private.h
    │   │   ├── DBJavaOnlyListener+Private.mm
    │   │   ├── DBJavaOnlyListener.h
    │   │   ├── DBListenerCaller+Private.h
    │   │   ├── DBListenerCaller+Private.mm
    │   │   ├── DBListenerCaller.h
    │   │   ├── DBMapDateRecord+Private.h
    │   │   ├── DBMapDateRecord+Private.mm
    │   │   ├── DBMapDateRecord.h
    │   │   ├── DBMapDateRecord.mm
    │   │   ├── DBMapListRecord+Private.h
    │   │   ├── DBMapListRecord+Private.mm
    │   │   ├── DBMapListRecord.h
    │   │   ├── DBMapListRecord.mm
    │   │   ├── DBMapRecord+Private.h
    │   │   ├── DBMapRecord+Private.mm
    │   │   ├── DBMapRecord.h
    │   │   ├── DBMapRecord.mm
    │   │   ├── DBNestedCollection+Private.h
    │   │   ├── DBNestedCollection+Private.mm
    │   │   ├── DBNestedCollection.h
    │   │   ├── DBNestedCollection.mm
    │   │   ├── DBObjcOnlyListener+Private.h
    │   │   ├── DBObjcOnlyListener+Private.mm
    │   │   ├── DBObjcOnlyListener.h
    │   │   ├── DBParcelableList+Private.h
    │   │   ├── DBParcelableList+Private.mm
    │   │   ├── DBParcelableList.h
    │   │   ├── DBParcelableList.mm
    │   │   ├── DBParcelableListMapSet+Private.h
    │   │   ├── DBParcelableListMapSet+Private.mm
    │   │   ├── DBParcelableListMapSet.h
    │   │   ├── DBParcelableListMapSet.mm
    │   │   ├── DBParcelableListSet+Private.h
    │   │   ├── DBParcelableListSet+Private.mm
    │   │   ├── DBParcelableListSet.h
    │   │   ├── DBParcelableListSet.mm
    │   │   ├── DBParcelableMap+Private.h
    │   │   ├── DBParcelableMap+Private.mm
    │   │   ├── DBParcelableMap.h
    │   │   ├── DBParcelableMap.mm
    │   │   ├── DBParcelableMapList+Private.h
    │   │   ├── DBParcelableMapList+Private.mm
    │   │   ├── DBParcelableMapList.h
    │   │   ├── DBParcelableMapList.mm
    │   │   ├── DBParcelableMapSet+Private.h
    │   │   ├── DBParcelableMapSet+Private.mm
    │   │   ├── DBParcelableMapSet.h
    │   │   ├── DBParcelableMapSet.mm
    │   │   ├── DBParcelableOptionalList+Private.h
    │   │   ├── DBParcelableOptionalList+Private.mm
    │   │   ├── DBParcelableOptionalList.h
    │   │   ├── DBParcelableOptionalList.mm
    │   │   ├── DBParcelableOptionalMap+Private.h
    │   │   ├── DBParcelableOptionalMap+Private.mm
    │   │   ├── DBParcelableOptionalMap.h
    │   │   ├── DBParcelableOptionalMap.mm
    │   │   ├── DBParcelableOptionalSet+Private.h
    │   │   ├── DBParcelableOptionalSet+Private.mm
    │   │   ├── DBParcelableOptionalSet.h
    │   │   ├── DBParcelableOptionalSet.mm
    │   │   ├── DBParcelablePrimitives+Private.h
    │   │   ├── DBParcelablePrimitives+Private.mm
    │   │   ├── DBParcelablePrimitives.h
    │   │   ├── DBParcelablePrimitives.mm
    │   │   ├── DBParcelableSet+Private.h
    │   │   ├── DBParcelableSet+Private.mm
    │   │   ├── DBParcelableSet.h
    │   │   ├── DBParcelableSet.mm
    │   │   ├── DBPrimitiveList+Private.h
    │   │   ├── DBPrimitiveList+Private.mm
    │   │   ├── DBPrimitiveList.h
    │   │   ├── DBPrimitiveList.mm
    │   │   ├── DBRecordUsingExtendedRecord+Private.h
    │   │   ├── DBRecordUsingExtendedRecord+Private.mm
    │   │   ├── DBRecordUsingExtendedRecord.h
    │   │   ├── DBRecordUsingExtendedRecord.mm
    │   │   ├── DBRecordWithDerivings+Private.h
    │   │   ├── DBRecordWithDerivings+Private.mm
    │   │   ├── DBRecordWithDerivings.h
    │   │   ├── DBRecordWithDerivings.mm
    │   │   ├── DBRecordWithDurationAndDerivings+Private.h
    │   │   ├── DBRecordWithDurationAndDerivings+Private.mm
    │   │   ├── DBRecordWithDurationAndDerivings.h
    │   │   ├── DBRecordWithDurationAndDerivings.mm
    │   │   ├── DBRecordWithFlags+Private.h
    │   │   ├── DBRecordWithFlags+Private.mm
    │   │   ├── DBRecordWithFlags.h
    │   │   ├── DBRecordWithFlags.mm
    │   │   ├── DBRecordWithNestedDerivings+Private.h
    │   │   ├── DBRecordWithNestedDerivings+Private.mm
    │   │   ├── DBRecordWithNestedDerivings.h
    │   │   ├── DBRecordWithNestedDerivings.mm
    │   │   ├── DBReturnOne+Private.h
    │   │   ├── DBReturnOne+Private.mm
    │   │   ├── DBReturnOne.h
    │   │   ├── DBReturnTwo+Private.h
    │   │   ├── DBReturnTwo+Private.mm
    │   │   ├── DBReturnTwo.h
    │   │   ├── DBReverseClientInterface+Private.h
    │   │   ├── DBReverseClientInterface+Private.mm
    │   │   ├── DBReverseClientInterface.h
    │   │   ├── DBSampleInterface+Private.h
    │   │   ├── DBSampleInterface+Private.mm
    │   │   ├── DBSampleInterface.h
    │   │   ├── DBSecondListener+Private.h
    │   │   ├── DBSecondListener+Private.mm
    │   │   ├── DBSecondListener.h
    │   │   ├── DBSetRecord+Private.h
    │   │   ├── DBSetRecord+Private.mm
    │   │   ├── DBSetRecord.h
    │   │   ├── DBSetRecord.mm
    │   │   ├── DBTestDuration+Private.h
    │   │   ├── DBTestDuration+Private.mm
    │   │   ├── DBTestDuration.h
    │   │   ├── DBTestHelpers+Private.h
    │   │   ├── DBTestHelpers+Private.mm
    │   │   ├── DBTestHelpers.h
    │   │   ├── DBTestOptionalExternInterfaceRecord+Private.h
    │   │   ├── DBTestOptionalExternInterfaceRecord+Private.mm
    │   │   ├── DBTestOptionalExternInterfaceRecord.h
    │   │   ├── DBTestOptionalExternInterfaceRecord.mm
    │   │   ├── DBUserToken+Private.h
    │   │   ├── DBUserToken+Private.mm
    │   │   ├── DBUserToken.h
    │   │   ├── DBUsesSingleLanguageListeners+Private.h
    │   │   ├── DBUsesSingleLanguageListeners+Private.mm
    │   │   ├── DBUsesSingleLanguageListeners.h
    │   │   ├── DBVarnameInterface+Private.h
    │   │   ├── DBVarnameInterface+Private.mm
    │   │   ├── DBVarnameInterface.h
    │   │   ├── DBVarnameRecord+Private.h
    │   │   ├── DBVarnameRecord+Private.mm
    │   │   ├── DBVarnameRecord.h
    │   │   ├── DBVarnameRecord.mm
    │   │   ├── DBWcharTestHelpers+Private.h
    │   │   ├── DBWcharTestHelpers+Private.mm
    │   │   ├── DBWcharTestHelpers.h
    │   │   ├── DBWcharTestRec+Private.h
    │   │   ├── DBWcharTestRec+Private.mm
    │   │   ├── DBWcharTestRec.h
    │   │   └── DBWcharTestRec.mm
    │   └── outFileList.txt
    ├── handwritten-src
    │   ├── cpp
    │   │   ├── Duration-jni.hpp
    │   │   ├── Duration-objc.hpp
    │   │   ├── ListenerCaller.cpp
    │   │   ├── TranslateDuration.cpp
    │   │   ├── cpp_exception_impl.cpp
    │   │   ├── cpp_exception_impl.hpp
    │   │   ├── extended_record.cpp
    │   │   ├── extended_record.hpp
    │   │   ├── flag_roundtrip.cpp
    │   │   ├── optional.hpp
    │   │   ├── return_one_two.cpp
    │   │   ├── reverse_client_interface_impl.cpp
    │   │   ├── reverse_client_interface_impl.hpp
    │   │   ├── test_helpers.cpp
    │   │   └── wchar_test_helpers.cpp
    │   ├── java
    │   │   ├── android
    │   │   │   └── os
    │   │   │   │   ├── Parcel.java
    │   │   │   │   └── Parcelable.java
    │   │   └── com
    │   │   │   └── dropbox
    │   │   │       └── djinni
    │   │   │           └── test
    │   │   │               ├── AllTests.java
    │   │   │               ├── AndroidParcelableTest.java
    │   │   │               ├── ClientInterfaceImpl.java
    │   │   │               ├── ClientInterfaceTest.java
    │   │   │               ├── CppExceptionTest.java
    │   │   │               ├── DurationTest.java
    │   │   │               ├── EnumTest.java
    │   │   │               ├── MapRecordTest.java
    │   │   │               ├── MockRecordTest.java
    │   │   │               ├── NestedCollectionTest.java
    │   │   │               ├── PrimitiveListTest.java
    │   │   │               ├── PrimitivesTest.java
    │   │   │               ├── RecordWithDerivingsTest.java
    │   │   │               ├── SetRecordTest.java
    │   │   │               ├── TokenTest.java
    │   │   │               └── WcharTest.java
    │   └── objc
    │   │   ├── impl
    │   │       ├── DBClientInterfaceImpl.h
    │   │       └── DBClientInterfaceImpl.mm
    │   │   └── tests
    │   │       ├── DBClientInterfaceTests.mm
    │   │       ├── DBConstantTests.mm
    │   │       ├── DBCppExceptionTests.mm
    │   │       ├── DBDateRecordTests.mm
    │   │       ├── DBDurationTests.m
    │   │       ├── DBFlagsTests.mm
    │   │       ├── DBMapRecordTests.mm
    │   │       ├── DBMultipleInheritanceTests.m
    │   │       ├── DBNestedCollectionTests.mm
    │   │       ├── DBPrimitiveListTests.mm
    │   │       ├── DBPrimitivesTests.m
    │   │       ├── DBRecordWithDerivingsCppTests.mm
    │   │       ├── DBRecordWithDerivingsObjcTests.mm
    │   │       ├── DBSetRecordTests.mm
    │   │       ├── DBTokenTests.mm
    │   │       ├── DBWcharTests.m
    │   │       ├── DjinniObjcTestTests-Info.plist
    │   │       └── en.lproj
    │   │           └── InfoPlist.strings
    ├── java
    │   ├── .gitignore
    │   ├── CMakeLists.txt
    │   ├── build.xml
    │   └── docker
    │   │   ├── README.md
    │   │   ├── build_and_run_tests.sh
    │   │   ├── centos_6
    │   │       └── Dockerfile
    │   │   ├── debian_jessie
    │   │       └── Dockerfile
    │   │   ├── fedora_24
    │   │       └── Dockerfile
    │   │   ├── run_dockerized_test.sh
    │   │   ├── ubuntu_trusty
    │   │       └── Dockerfile
    │   │   └── ubuntu_utopic
    │   │       └── Dockerfile
    ├── objc
    │   └── DjinniObjcTest.xcodeproj
    │   │   ├── project.pbxproj
    │   │   └── xcshareddata
    │   │       └── xcschemes
    │   │           └── DjinniObjcTest.xcscheme
    ├── run_djinni.sh
    └── test-suite.iml
└── tools
    └── format_whitespace


/.gitignore:
--------------------------------------------------------------------------------
 1 | .DS_Store
 2 | 
 3 | **/.idea/workspace.xml
 4 | **/.idea/tasks.xml
 5 | 
 6 | # android makefiles
 7 | GypAndroid.mk
 8 | support/*.target.mk
 9 | *.target.mk
10 | GypAndroid.mk
11 | 
12 | # gyp
13 | deps/gyp
14 | 
15 | # android build artifacts
16 | libs/
17 | obj/
18 | 
19 | # ios build artifacts
20 | build/
21 | build_ios/
22 | 
23 | # xcode stuff
24 | project.xcworkspace
25 | *.xccheckout
26 | DerivedData
27 | *.xcuserdatad/
28 | 
29 | # djinni output directories
30 | djinni-output-temp/
31 | 
32 | # intellij-plugin build artifact
33 | intellij-plugin/djinni.jar
34 | 
35 | # profiling output
36 | callgrind.out.*
37 | 


--------------------------------------------------------------------------------
/CONTRIBUTORS:
--------------------------------------------------------------------------------
 1 | The following is a partial list of individuals or corporations
 2 | who have identified their contributions to the djinni project.
 3 | 
 4 | The complete list of contributors can be identified through
 5 | Git history.
 6 | 
 7 | - Google Inc.
 8 | - Microsoft Corp.
 9 | 
10 | 


--------------------------------------------------------------------------------
/deps/java/jsr305-3.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dropbox/djinni/4f3aa6971b2b539cfadec4df2243a268651c4de3/deps/java/jsr305-3.0.0.jar


--------------------------------------------------------------------------------
/deps/java/test/hamcrest-core-1.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dropbox/djinni/4f3aa6971b2b539cfadec4df2243a268651c4de3/deps/java/test/hamcrest-core-1.3.jar


--------------------------------------------------------------------------------
/deps/java/test/junit-4.11.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dropbox/djinni/4f3aa6971b2b539cfadec4df2243a268651c4de3/deps/java/test/junit-4.11.jar


--------------------------------------------------------------------------------
/example/Makefile:
--------------------------------------------------------------------------------
 1 | all: android ios localhost
 2 | 
 3 | android: example.djinni
 4 | 	@make -C .. GypAndroid.mk
 5 | 
 6 | ios: example.djinni
 7 | 	@make -C .. ./build_ios/example/libtextsort.xcodeproj
 8 | 
 9 | localhost: example.djinni
10 | 	cd localhost && ant compile jar run
11 | 
12 | .PHONY: android ios localhost
13 | 


--------------------------------------------------------------------------------
/example/android/.gitignore:
--------------------------------------------------------------------------------
1 | .gradle
2 | /local.properties
3 | 


--------------------------------------------------------------------------------
/example/android/.idea/.name:
--------------------------------------------------------------------------------
1 | TextSort


--------------------------------------------------------------------------------
/example/android/.idea/compiler.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <project version="4">
 3 |   <component name="CompilerConfiguration">
 4 |     <option name="DEFAULT_COMPILER" value="Javac" />
 5 |     <resourceExtensions />
 6 |     <wildcardResourcePatterns>
 7 |       <entry name="!?*.java" />
 8 |       <entry name="!?*.form" />
 9 |       <entry name="!?*.class" />
10 |       <entry name="!?*.groovy" />
11 |       <entry name="!?*.scala" />
12 |       <entry name="!?*.flex" />
13 |       <entry name="!?*.kt" />
14 |       <entry name="!?*.clj" />
15 |     </wildcardResourcePatterns>
16 |     <annotationProcessing>
17 |       <profile default="true" name="Default" enabled="false">
18 |         <processorPath useClasspath="true" />
19 |       </profile>
20 |     </annotationProcessing>
21 |   </component>
22 | </project>
23 | 
24 | 


--------------------------------------------------------------------------------
/example/android/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 | <component name="CopyrightManager">
2 |   <settings default="" />
3 | </component>


--------------------------------------------------------------------------------
/example/android/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <project version="4">
3 |   <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
4 | </project>
5 | 
6 | 


--------------------------------------------------------------------------------
/example/android/.idea/gradle.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <project version="4">
 3 |   <component name="GradleSettings">
 4 |     <option name="linkedExternalProjectsSettings">
 5 |       <GradleProjectSettings>
 6 |         <option name="distributionType" value="DEFAULT_WRAPPED" />
 7 |         <option name="externalProjectPath" value="$PROJECT_DIR
quot; />
 8 |         <option name="modules">
 9 |           <set>
10 |             <option value="$PROJECT_DIR
quot; />
11 |             <option value="$PROJECT_DIR$/app" />
12 |           </set>
13 |         </option>
14 |       </GradleProjectSettings>
15 |     </option>
16 |   </component>
17 | </project>
18 | 
19 | 


--------------------------------------------------------------------------------
/example/android/.idea/misc.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <project version="4">
 3 |   <component name="EntryPointsManager">
 4 |     <entry_points version="2.0" />
 5 |   </component>
 6 |   <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
 7 |     <output url="file://$PROJECT_DIR$/build/classes" />
 8 |   </component>
 9 | </project>
10 | 
11 | 


--------------------------------------------------------------------------------
/example/android/.idea/modules.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <project version="4">
 3 |   <component name="ProjectModuleManager">
 4 |     <modules>
 5 |       <module fileurl="file://$PROJECT_DIR$/android.iml" filepath="$PROJECT_DIR$/android.iml" />
 6 |       <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
 7 |     </modules>
 8 |   </component>
 9 | </project>
10 | 
11 | 


--------------------------------------------------------------------------------
/example/android/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <project version="4">
3 |   <component name="VcsDirectoryMappings">
4 |     <mapping directory="" vcs="" />
5 |   </component>
6 | </project>
7 | 
8 | 


--------------------------------------------------------------------------------
/example/android/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 


--------------------------------------------------------------------------------
/example/android/app/jni/Android.mk:
--------------------------------------------------------------------------------
1 | # always force this build to re-run its dependencies
2 | FORCE_GYP := $(shell make -C ../../../ GypAndroid.mk)
3 | include ../../../GypAndroid.mk
4 | 


--------------------------------------------------------------------------------
/example/android/app/jni/Application.mk:
--------------------------------------------------------------------------------
 1 | # Android makefile for textsort shared lib, jni wrapper around libtextsort C API
 2 | 
 3 | APP_ABI := all
 4 | APP_OPTIM := release
 5 | # Android NDK: android-8 is unsupported. Using minimum supported version android-16.
 6 | APP_PLATFORM := android-16
 7 | # Android NDK: Invalid NDK_TOOLCHAIN_VERSION value: 4.9. GCC is no longer supported. See https://android.googlesource.com/platform/ndk/+/master/docs/ClangMigration.md.
 8 | # Android NDK: APP_STL gnustl_static is no longer supported. Please switch to either c++_static or c++_shared. See https://developer.android.com/ndk/guides/cpp-support.html for more information.
 9 | APP_STL := c++_static
10 | APP_BUILD_SCRIPT := jni/Android.mk
11 | APP_MODULES := libtextsort_jni
12 | 


--------------------------------------------------------------------------------
/example/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
 1 | # Add project specific ProGuard rules here.
 2 | # By default, the flags in this file are appended to flags specified
 3 | # in /Applications/Android Studio.app/sdk/tools/proguard/proguard-android.txt
 4 | # You can edit the include path and order by changing the proguardFiles
 5 | # directive in build.gradle.
 6 | #
 7 | # For more details, see
 8 | #   http://developer.android.com/guide/developing/tools/proguard.html
 9 | 
10 | # Add any project specific keep options here:
11 | 
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | #   public *;
17 | #}
18 | 


--------------------------------------------------------------------------------
/example/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="utf-8"?>
 2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3 |     package="com.dropbox.textsort" >
 4 | 
 5 |     <application
 6 |         android:allowBackup="true"
 7 |         android:icon="@drawable/ic_launcher"
 8 |         android:label="@string/app_name"
 9 |         android:theme="@style/AppTheme" >
10 |         <activity
11 |             android:name=".MainActivity"
12 |             android:label="@string/app_name" >
13 |             <intent-filter>
14 |                 <action android:name="android.intent.action.MAIN" />
15 | 
16 |                 <category android:name="android.intent.category.LAUNCHER" />
17 |             </intent-filter>
18 |         </activity>
19 |     </application>
20 | 
21 | </manifest>
22 | 


--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dropbox/djinni/4f3aa6971b2b539cfadec4df2243a268651c4de3/example/android/app/src/main/res/drawable-hdpi/ic_launcher.png


--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dropbox/djinni/4f3aa6971b2b539cfadec4df2243a268651c4de3/example/android/app/src/main/res/drawable-mdpi/ic_launcher.png


--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dropbox/djinni/4f3aa6971b2b539cfadec4df2243a268651c4de3/example/android/app/src/main/res/drawable-xhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dropbox/djinni/4f3aa6971b2b539cfadec4df2243a268651c4de3/example/android/app/src/main/res/drawable-xxhdpi/ic_launcher.png


--------------------------------------------------------------------------------
/example/android/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Example customization of dimensions originally defined in res/values/dimens.xml
3 |          (such as screen margins) for screens with more than 820dp of available width. This
4 |          would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
5 |     <dimen name="activity_horizontal_margin">64dp</dimen>
6 | </resources>
7 | 


--------------------------------------------------------------------------------
/example/android/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 |     <!-- Default screen margins, per the Android Design guidelines. -->
3 |     <dimen name="activity_horizontal_margin">16dp</dimen>
4 |     <dimen name="activity_vertical_margin">16dp</dimen>
5 | </resources>
6 | 


--------------------------------------------------------------------------------
/example/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <resources>
3 | 
4 |     <string name="app_name">TextSort</string>
5 |     <string name="hello_world">Hello world!</string>
6 |     <string name="action_settings">Settings</string>
7 | 
8 | </resources>
9 | 


--------------------------------------------------------------------------------
/example/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 | <resources>
2 | 
3 |     <!-- Base application theme. -->
4 |     <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
5 |         <!-- Customize your theme here. -->
6 |     </style>
7 | 
8 | </resources>
9 | 


--------------------------------------------------------------------------------
/example/android/build.gradle:
--------------------------------------------------------------------------------
 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
 2 | 
 3 | buildscript {
 4 |     repositories {
 5 |         google()
 6 |         jcenter()
 7 |     }
 8 |     dependencies {
 9 |         classpath 'com.android.tools.build:gradle:3.3.2'
10 | 
11 |         // NOTE: Do not place your application dependencies here; they belong
12 |         // in the individual module build.gradle files
13 |     }
14 | }
15 | 
16 | allprojects {
17 |     repositories {
18 |         google()
19 |         jcenter()
20 |     }
21 | }
22 | 


--------------------------------------------------------------------------------
/example/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dropbox/djinni/4f3aa6971b2b539cfadec4df2243a268651c4de3/example/android/gradle/wrapper/gradle-wrapper.jar


--------------------------------------------------------------------------------
/example/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | zipStoreBase=GRADLE_USER_HOME
4 | zipStorePath=wrapper/dists
5 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip
6 | 


--------------------------------------------------------------------------------
/example/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | 


--------------------------------------------------------------------------------
/example/example.djinni:
--------------------------------------------------------------------------------
 1 | item_list = record {
 2 |     items: list<string>;
 3 | }
 4 | 
 5 | sort_order = enum {
 6 |     ascending;
 7 |     descending;
 8 |     random;
 9 | }
10 | 
11 | sort_items = interface +c {
12 |     # For the iOS / Android demo
13 |     sort(order: sort_order, items: item_list);
14 |     static create_with_listener(listener: textbox_listener): sort_items;
15 | 
16 |     # For the localhost / command-line demo
17 |     static run_sort(items: item_list): item_list;
18 | }
19 | 
20 | textbox_listener = interface +j +o {
21 |     update(items: item_list);
22 | }
23 | 


--------------------------------------------------------------------------------
/example/generated-src/cpp/item_list.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | #include <utility>
 8 | #include <vector>
 9 | 
10 | namespace textsort {
11 | 
12 | struct ItemList final {
13 |     std::vector<std::string> items;
14 | 
15 |     ItemList(std::vector<std::string> items_)
16 |     : items(std::move(items_))
17 |     {}
18 | };
19 | 
20 | }  // namespace textsort
21 | 


--------------------------------------------------------------------------------
/example/generated-src/cpp/sort_items.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <memory>
 7 | 
 8 | namespace textsort {
 9 | 
10 | class TextboxListener;
11 | enum class sort_order;
12 | struct ItemList;
13 | 
14 | class SortItems {
15 | public:
16 |     virtual ~SortItems() {}
17 | 
18 |     /** For the iOS / Android demo */
19 |     virtual void sort(sort_order order, const ItemList & items) = 0;
20 | 
21 |     static std::shared_ptr<SortItems> create_with_listener(const std::shared_ptr<TextboxListener> & listener);
22 | 
23 |     /** For the localhost / command-line demo */
24 |     static ItemList run_sort(const ItemList & items);
25 | };
26 | 
27 | }  // namespace textsort
28 | 


--------------------------------------------------------------------------------
/example/generated-src/cpp/sort_order.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <functional>
 7 | 
 8 | namespace textsort {
 9 | 
10 | enum class sort_order : int {
11 |     ASCENDING,
12 |     DESCENDING,
13 |     RANDOM,
14 | };
15 | 
16 | }  // namespace textsort
17 | 
18 | namespace std {
19 | 
20 | template <>
21 | struct hash<::textsort::sort_order> {
22 |     size_t operator()(::textsort::sort_order type) const {
23 |         return std::hash<int>()(static_cast<int>(type));
24 |     }
25 | };
26 | 
27 | }  // namespace std
28 | 


--------------------------------------------------------------------------------
/example/generated-src/cpp/textbox_listener.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | namespace textsort {
 7 | 
 8 | struct ItemList;
 9 | 
10 | class TextboxListener {
11 | public:
12 |     virtual ~TextboxListener() {}
13 | 
14 |     virtual void update(const ItemList & items) = 0;
15 | };
16 | 
17 | }  // namespace textsort
18 | 


--------------------------------------------------------------------------------
/example/generated-src/java/com/dropbox/textsort/ItemList.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | package com.dropbox.textsort;
 5 | 
 6 | import java.util.ArrayList;
 7 | import javax.annotation.CheckForNull;
 8 | import javax.annotation.Nonnull;
 9 | 
10 | /*package*/ final class ItemList {
11 | 
12 | 
13 |     /*package*/ final ArrayList<String> mItems;
14 | 
15 |     public ItemList(
16 |             @Nonnull ArrayList<String> items) {
17 |         this.mItems = items;
18 |     }
19 | 
20 |     @Nonnull
21 |     public ArrayList<String> getItems() {
22 |         return mItems;
23 |     }
24 | 
25 |     @Override
26 |     public String toString() {
27 |         return "ItemList{" +
28 |                 "mItems=" + mItems +
29 |         "}";
30 |     }
31 | 
32 | }
33 | 


--------------------------------------------------------------------------------
/example/generated-src/java/com/dropbox/textsort/SortOrder.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | package com.dropbox.textsort;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | /*package*/ enum SortOrder {
10 |     ASCENDING,
11 |     DESCENDING,
12 |     RANDOM,
13 |     ;
14 | }
15 | 


--------------------------------------------------------------------------------
/example/generated-src/java/com/dropbox/textsort/TextboxListener.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | package com.dropbox.textsort;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | /*package*/ interface TextboxListener {
10 |     public void update(@Nonnull ItemList items);
11 | }
12 | 


--------------------------------------------------------------------------------
/example/generated-src/objc/TXSItemList+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | #import "TXSItemList.h"
 5 | #include "item_list.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class TXSItemList;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ItemList
14 | {
15 |     using CppType = ::textsort::ItemList;
16 |     using ObjcType = TXSItemList*;
17 | 
18 |     using Boxed = ItemList;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/example/generated-src/objc/TXSItemList+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | #import "TXSItemList+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto ItemList::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::List<::djinni::String>::toCpp(obj.items)};
14 | }
15 | 
16 | auto ItemList::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[TXSItemList alloc] initWithItems:(::djinni::List<::djinni::String>::fromCpp(cpp.items))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/example/generated-src/objc/TXSItemList.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface TXSItemList : NSObject
 7 | - (nonnull instancetype)initWithItems:(nonnull NSArray<NSString *> *)items;
 8 | + (nonnull instancetype)itemListWithItems:(nonnull NSArray<NSString *> *)items;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSArray<NSString *> * items;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/example/generated-src/objc/TXSItemList.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | #import "TXSItemList.h"
 5 | 
 6 | 
 7 | @implementation TXSItemList
 8 | 
 9 | - (nonnull instancetype)initWithItems:(nonnull NSArray<NSString *> *)items
10 | {
11 |     if (self = [super init]) {
12 |         _items = [items copy];
13 |     }
14 |     return self;
15 | }
16 | 
17 | + (nonnull instancetype)itemListWithItems:(nonnull NSArray<NSString *> *)items
18 | {
19 |     return [(TXSItemList*)[self alloc] initWithItems:items];
20 | }
21 | 
22 | - (NSString *)description
23 | {
24 |     return [NSString stringWithFormat:@"<%@ %p items:%@>", self.class, (void *)self, self.items];
25 | }
26 | 
27 | @end
28 | 


--------------------------------------------------------------------------------
/example/generated-src/objc/TXSSortItems.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | #import "TXSItemList.h"
 5 | #import "TXSSortOrder.h"
 6 | #import <Foundation/Foundation.h>
 7 | @class TXSSortItems;
 8 | @protocol TXSTextboxListener;
 9 | 
10 | 
11 | @interface TXSSortItems : NSObject
12 | 
13 | /** For the iOS / Android demo */
14 | - (void)sort:(TXSSortOrder)order
15 |        items:(nonnull TXSItemList *)items;
16 | 
17 | + (nullable TXSSortItems *)createWithListener:(nullable id<TXSTextboxListener>)listener;
18 | 
19 | /** For the localhost / command-line demo */
20 | + (nonnull TXSItemList *)runSort:(nonnull TXSItemList *)items;
21 | 
22 | @end
23 | 


--------------------------------------------------------------------------------
/example/generated-src/objc/TXSSortOrder+Private.h:
--------------------------------------------------------------------------------
1 | // AUTOGENERATED FILE - DO NOT MODIFY!
2 | // This file generated by Djinni from example.djinni
3 | 
4 | #include "sort_order.hpp"
5 | #import "DJIMarshal+Private.h"
6 | 
7 | 


--------------------------------------------------------------------------------
/example/generated-src/objc/TXSSortOrder.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | typedef NS_ENUM(NSInteger, TXSSortOrder)
 7 | {
 8 |     TXSSortOrderAscending,
 9 |     TXSSortOrderDescending,
10 |     TXSSortOrderRandom,
11 | };
12 | 


--------------------------------------------------------------------------------
/example/generated-src/objc/TXSTextboxListener.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from example.djinni
 3 | 
 4 | #import "TXSItemList.h"
 5 | #import <Foundation/Foundation.h>
 6 | 
 7 | 
 8 | @protocol TXSTextboxListener
 9 | 
10 | - (void)update:(nonnull TXSItemList *)items;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/example/generated-src/objc/TextSort-Bridging-Header.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni
 3 | 
 4 | // TextSort_Bridging_Header.h
 5 | // TextSort_Bridging_Header
 6 | 
 7 | #import <Foundation/Foundation.h>
 8 | 
 9 | //! Project version number for TextSortBridgingHeader.
10 | FOUNDATION_EXPORT double TextSortBridgingHeaderVersionNumber;
11 | 
12 | //! Project version string for TextSortBridgingHeader.
13 | FOUNDATION_EXPORT const unsigned char TextSortBridgingHeaderVersionString[];
14 | 
15 | #import "TXSItemList.h"
16 | #import "TXSSortOrder.h"
17 | #import "TXSSortItems.h"
18 | #import "TXSTextboxListener.h"
19 | 


--------------------------------------------------------------------------------
/example/glob.py:
--------------------------------------------------------------------------------
 1 | #!/usr/bin/env python
 2 | # a helper for gyp to do file globbing cross platform
 3 | # Usage: python glob.py root_dir pattern [pattern...]
 4 | 
 5 | from __future__ import print_function
 6 | 
 7 | import fnmatch
 8 | import os
 9 | import sys
10 | 
11 | root_dir = sys.argv[1]
12 | patterns = sys.argv[2:]
13 | 
14 | for (dirpath, dirnames, files) in os.walk(root_dir):
15 |     for f in files:
16 |         match = False
17 |         for pattern in patterns:
18 |             match = match or fnmatch.fnmatch(f, pattern)
19 |         if match:
20 |             print(os.path.join(dirpath, f))
21 | 


--------------------------------------------------------------------------------
/example/handwritten-src/cpp/sort_items_impl.hpp:
--------------------------------------------------------------------------------
 1 | #pragma once
 2 | 
 3 | #include "sort_items.hpp"
 4 | #include "textbox_listener.hpp"
 5 | 
 6 | namespace textsort {
 7 | 
 8 | class SortItemsImpl : public SortItems {
 9 | 
10 | public:
11 |     SortItemsImpl(const std::shared_ptr<TextboxListener> & listener);
12 |     virtual void sort(sort_order order, const ItemList & items) override;
13 | 
14 | private:
15 |     std::shared_ptr<TextboxListener> m_listener;
16 | 
17 | };
18 | 
19 | }
20 | 


--------------------------------------------------------------------------------
/example/handwritten-src/java/com/dropbox/textsort/TextboxListenerImpl.java:
--------------------------------------------------------------------------------
 1 | package com.dropbox.textsort;
 2 | 
 3 | import android.widget.EditText;
 4 | 
 5 | import java.util.ArrayList;
 6 | 
 7 | public class TextboxListenerImpl implements TextboxListener {
 8 | 
 9 |     private EditText mTextArea;
10 | 
11 |     public TextboxListenerImpl(EditText textArea) {
12 |         this.mTextArea = textArea;
13 |     }
14 | 
15 |     @Override
16 |     public void update(ItemList items) {
17 |         ArrayList<String> list = items.getItems();
18 |         StringBuilder builder = new StringBuilder();
19 |         for (String str : list) {
20 |             builder.append(str);
21 |             builder.append("\n");
22 |         }
23 |         mTextArea.setText(builder);
24 |     }
25 | }
26 | 


--------------------------------------------------------------------------------
/example/handwritten-src/objc/TXSAppDelegate.h:
--------------------------------------------------------------------------------
1 | #import <UIKit/UIKit.h>
2 | 
3 | @interface TXSAppDelegate : UIResponder <UIApplicationDelegate>
4 | 
5 | @property (strong, nonatomic) UIWindow *window;
6 | 
7 | @end
8 | 


--------------------------------------------------------------------------------
/example/handwritten-src/objc/TXSTextboxListenerImpl.h:
--------------------------------------------------------------------------------
1 | #import "TXSTextboxListener.h"
2 | #import <Foundation/Foundation.h>
3 | 
4 | @interface TXSTextboxListenerImpl : NSObject <TXSTextboxListener>
5 | 
6 | - (id)initWithUITextView:(UITextView *)textView;
7 | 
8 | @end
9 | 


--------------------------------------------------------------------------------
/example/handwritten-src/objc/TXSTextboxListenerImpl.m:
--------------------------------------------------------------------------------
 1 | #import "TXSTextboxListenerImpl.h"
 2 | #import "TXSItemList.h"
 3 | 
 4 | @implementation TXSTextboxListenerImpl {
 5 |     UITextView * _textView;
 6 | }
 7 | 
 8 | - (id)initWithUITextView:(UITextView *)textView
 9 | {
10 |     if (self = [super init]) {
11 |         _textView = textView;
12 |     }
13 |     return self;
14 | }
15 | 
16 | - (void)update:(TXSItemList *)items
17 | {
18 |     NSString *str = [items.items componentsJoinedByString:@"\n"];
19 |     _textView.text = str;
20 | }
21 | 
22 | @end
23 | 


--------------------------------------------------------------------------------
/example/handwritten-src/objc/TXSViewController.h:
--------------------------------------------------------------------------------
1 | #import <UIKit/UIKit.h>
2 | 
3 | @interface TXSViewController : UIViewController
4 | 
5 | @end
6 | 


--------------------------------------------------------------------------------
/example/handwritten-src/objc/main.mm:
--------------------------------------------------------------------------------
 1 | #import <UIKit/UIKit.h>
 2 | 
 3 | #import "TXSAppDelegate.h"
 4 | 
 5 | int main(int argc, char * argv[])
 6 | {
 7 |     @autoreleasepool {
 8 |         return UIApplicationMain(argc, argv, nil, NSStringFromClass([TXSAppDelegate class]));
 9 |     }
10 | }
11 | 


--------------------------------------------------------------------------------
/example/handwritten-src/swift/TXSTextboxListenerDebugableImpl.swift:
--------------------------------------------------------------------------------
 1 | import UIKit
 2 | 
 3 | final class TXSTextboxListenerDebugableImpl : NSObject, TXSTextboxListener {
 4 |     private var textView: UITextView
 5 |     
 6 |     @available(*, unavailable)
 7 |     override init() {
 8 |         fatalError("Unsupported")
 9 |     }
10 |     
11 |     @objc(initWithUITextView:)
12 |     init(textView: UITextView) {
13 |         self.textView = textView
14 |     }
15 |     
16 |     func update(_ items: TXSItemList) {
17 |         let string = items.items.joined(separator: "\n")
18 |         print("TXSTextboxListenerDebugableImpl -> update \n\(string)")
19 |         textView.text = string
20 |     }
21 | }
22 | 


--------------------------------------------------------------------------------
/example/local.properties.sample:
--------------------------------------------------------------------------------
1 | ndk.dir=<path-to-ndk>
2 | 


--------------------------------------------------------------------------------
/example/localhost/.gitignore:
--------------------------------------------------------------------------------
1 | build/
2 | 


--------------------------------------------------------------------------------
/example/localhost/Dockerfile:
--------------------------------------------------------------------------------
 1 | FROM ubuntu:vivid
 2 | 
 3 | RUN apt-get update
 4 | RUN apt-get -y install git build-essential clang cmake
 5 | 
 6 | RUN apt-get install -y openjdk-8-jdk ant
 7 | 
 8 | ENV CXX clang++
 9 | 
10 | # Select Java 8
11 | RUN update-java-alternatives -s java-1.8.0-openjdk-amd64
12 | RUN rm /usr/lib/jvm/default-java
13 | RUN ln -s /usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/default-java
14 | 
15 | 


--------------------------------------------------------------------------------
/example/localhost/run_in_docker.sh:
--------------------------------------------------------------------------------
 1 | #! /usr/bin/env bash
 2 | set -eux
 3 | 
 4 | # Build docker container
 5 | docker build -t djinni-demo .
 6 | 
 7 | djinni_root=`cd ../../; pwd`
 8 | 
 9 | # Run!
10 | if [ $# -eq 0 ]; then
11 |   docker run --rm -it -v $djinni_root:/opt/djinni -w /opt/djinni djinni-demo bash
12 | else
13 |   docker run --rm -v $djinni_root:/opt/djinni -w /opt/djinni/example/localhost djinni-demo $@
14 | fi
15 | 
16 | 


--------------------------------------------------------------------------------
/example/objc/TextSort.xcodeproj/.gitignore:
--------------------------------------------------------------------------------
1 | xcuserdata/
2 | 


--------------------------------------------------------------------------------
/example/objc/TextSort.xcworkspace/.gitignore:
--------------------------------------------------------------------------------
1 | xcuserdata/
2 | 


--------------------------------------------------------------------------------
/example/objc/TextSort.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <Workspace
 3 |    version = "1.0">
 4 |    <FileRef
 5 |       location = "group:TextSort.xcodeproj">
 6 |    </FileRef>
 7 |    <FileRef
 8 |       location = "group:../../build_ios/example/libtextsort.xcodeproj">
 9 |    </FileRef>
10 |    <FileRef
11 |       location = "group:../../build_ios/support-lib/support_lib.xcodeproj">
12 |    </FileRef>
13 | </Workspace>
14 | 


--------------------------------------------------------------------------------
/example/objc/TextSort.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 | <plist version="1.0">
4 | <dict>
5 | 	<key>IDEDidComputeMac32BitWarning</key>
6 | 	<true/>
7 | </dict>
8 | </plist>
9 | 


--------------------------------------------------------------------------------
/example/objc/TextSort/TextSort-Prefix.pch:
--------------------------------------------------------------------------------
 1 | //
 2 | //  Prefix header
 3 | //
 4 | //  The contents of this file are implicitly included at the beginning of every source file.
 5 | //
 6 | 
 7 | #import <Availability.h>
 8 | 
 9 | #ifndef __IPHONE_5_0
10 | #warning "This project uses features only available in iOS SDK 5.0 and later."
11 | #endif
12 | 
13 | #ifdef __OBJC__
14 |     #import <UIKit/UIKit.h>
15 |     #import <Foundation/Foundation.h>
16 | #endif
17 | 


--------------------------------------------------------------------------------
/example/objc/TextSort/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 | 
3 | 


--------------------------------------------------------------------------------
/extension-libs/extension-libs.iml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <module type="WEB_MODULE" version="4">
3 |   <component name="NewModuleRootManager" inherit-compiler-output="true">
4 |     <exclude-output />
5 |     <content url="file://$MODULE_DIR
quot; />
6 |     <orderEntry type="inheritedJdk" />
7 |     <orderEntry type="sourceFolder" forTests="false" />
8 |   </component>
9 | </module>


--------------------------------------------------------------------------------
/intellij-plugin/.gitignore:
--------------------------------------------------------------------------------
1 | out/
2 | *~
3 | resources/META-INF


--------------------------------------------------------------------------------
/intellij-plugin/djinni.iml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <module type="PLUGIN_MODULE" version="4">
 3 |   <component name="DevKit.ModuleBuildProperties" url="file://$MODULE_DIR$/META-INF/plugin.xml" />
 4 |   <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="true">
 5 |     <exclude-output />
 6 |     <content url="file://$MODULE_DIR
quot;>
 7 |       <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
 8 |       <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
 9 |     </content>
10 |     <orderEntry type="jdk" jdkName="IntelliJ IDEA SDK" jdkType="IDEA JDK" />
11 |     <orderEntry type="sourceFolder" forTests="false" />
12 |   </component>
13 | </module>


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniBasicType.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniBasicType extends PsiElement {
 9 | 
10 | }
11 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniConstMember.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniConstMember extends PsiElement {
 9 | 
10 |   @NotNull
11 |   DjinniConstNamedValue getConstNamedValue();
12 | 
13 |   @NotNull
14 |   DjinniConstValue getConstValue();
15 | 
16 |   @NotNull
17 |   DjinniTypeReference getTypeReference();
18 | 
19 |   @NotNull
20 |   PsiElement getColon();
21 | 
22 |   @NotNull
23 |   PsiElement getEq();
24 | 
25 |   @NotNull
26 |   PsiElement getSemicolon();
27 | 
28 |   @NotNull
29 |   PsiElement getConst();
30 | 
31 | }
32 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniConstNamedValue.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniConstNamedValue extends DjinniNamedElement {
 9 | 
10 |   @NotNull
11 |   PsiElement getIdentifier();
12 | 
13 |   String getName();
14 | 
15 |   PsiElement setName(String newName);
16 | 
17 |   @Nullable
18 |   PsiElement getNameIdentifier();
19 | 
20 | }
21 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniConstRecordMemberElement.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniConstRecordMemberElement extends PsiElement {
 9 | 
10 |   @NotNull
11 |   DjinniConstValue getConstValue();
12 | 
13 |   @NotNull
14 |   PsiElement getEq();
15 | 
16 |   @NotNull
17 |   PsiElement getIdentifier();
18 | 
19 | }
20 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniConstReference.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniConstReference extends DjinniNamedElement {
 9 | 
10 |   @NotNull
11 |   PsiElement getIdentifier();
12 | 
13 |   String getName();
14 | 
15 |   PsiElement setName(String newName);
16 | 
17 |   @Nullable
18 |   PsiElement getNameIdentifier();
19 | 
20 | }
21 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniConstValue.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniConstValue extends PsiElement {
 9 | 
10 |   @NotNull
11 |   List<DjinniConstRecordMemberElement> getConstRecordMemberElementList();
12 | 
13 |   @Nullable
14 |   DjinniConstReference getConstReference();
15 | 
16 |   @Nullable
17 |   PsiElement getLeftBlockBrace();
18 | 
19 |   @Nullable
20 |   PsiElement getRightBlockBrace();
21 | 
22 |   @Nullable
23 |   PsiElement getNumberLiteral();
24 | 
25 |   @Nullable
26 |   PsiElement getStringLiteral();
27 | 
28 | }
29 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniDerivingParam.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniDerivingParam extends PsiElement {
 9 | 
10 |   @Nullable
11 |   PsiElement getEqKeyword();
12 | 
13 |   @Nullable
14 |   PsiElement getOrd();
15 | 
16 | }
17 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniDerivingParamList.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniDerivingParamList extends PsiElement {
 9 | 
10 |   @NotNull
11 |   DjinniDerivingParam getDerivingParam();
12 | 
13 |   @Nullable
14 |   DjinniDerivingParamList getDerivingParamList();
15 | 
16 |   @Nullable
17 |   PsiElement getListSeparator();
18 | 
19 | }
20 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniEnumMember.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniEnumMember extends PsiElement {
 9 | 
10 |   @NotNull
11 |   DjinniEnumValue getEnumValue();
12 | 
13 |   @NotNull
14 |   PsiElement getSemicolon();
15 | 
16 | }
17 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniEnumTypeVariant.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniEnumTypeVariant extends PsiElement {
 9 | 
10 |   @NotNull
11 |   PsiElement getEnum();
12 | 
13 | }
14 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniEnumValue.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniEnumValue extends DjinniNamedElement {
 9 | 
10 |   @NotNull
11 |   PsiElement getIdentifier();
12 | 
13 |   String getName();
14 | 
15 |   PsiElement setName(String newName);
16 | 
17 |   @Nullable
18 |   PsiElement getNameIdentifier();
19 | 
20 | }
21 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniExternStatement.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | import com.intellij.psi.PsiNamedElement;
 8 | import com.intellij.openapi.util.TextRange;
 9 | 
10 | public interface DjinniExternStatement extends PsiNamedElement {
11 | 
12 |   @NotNull
13 |   PsiElement getAt();
14 | 
15 |   @NotNull
16 |   PsiElement getExtern();
17 | 
18 |   @NotNull
19 |   PsiElement getStringLiteral();
20 | 
21 |   @NotNull
22 |   String getName();
23 | 
24 |   PsiElement setName(String newName);
25 | 
26 |   TextRange getRangeOfPath();
27 | 
28 |   @NotNull
29 |   String getPath();
30 | 
31 | }
32 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniGenerator.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniGenerator extends PsiElement {
 9 | 
10 |   @NotNull
11 |   PsiElement getPlus();
12 | 
13 | }
14 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniGenericBasicType.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniGenericBasicType extends PsiElement {
 9 | 
10 |   @Nullable
11 |   DjinniGenericBasicTypeDualParameter getGenericBasicTypeDualParameter();
12 | 
13 |   @Nullable
14 |   DjinniGenericBasicTypeSingleParameter getGenericBasicTypeSingleParameter();
15 | 
16 | }
17 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniGenericBasicTypeDualParameter.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniGenericBasicTypeDualParameter extends PsiElement {
 9 | 
10 |   @NotNull
11 |   List<DjinniTypeReference> getTypeReferenceList();
12 | 
13 |   @NotNull
14 |   PsiElement getLeftGenericsBrace();
15 | 
16 |   @NotNull
17 |   PsiElement getListSeparator();
18 | 
19 |   @NotNull
20 |   PsiElement getRightGenericsBrace();
21 | 
22 |   @NotNull
23 |   PsiElement getMap();
24 | 
25 | }
26 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniGenericBasicTypeSingleParameter.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniGenericBasicTypeSingleParameter extends PsiElement {
 9 | 
10 |   @NotNull
11 |   DjinniTypeReference getTypeReference();
12 | 
13 |   @NotNull
14 |   PsiElement getLeftGenericsBrace();
15 | 
16 |   @NotNull
17 |   PsiElement getRightGenericsBrace();
18 | 
19 |   @Nullable
20 |   PsiElement getList();
21 | 
22 |   @Nullable
23 |   PsiElement getOptional();
24 | 
25 |   @Nullable
26 |   PsiElement getSet();
27 | 
28 | }
29 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniImportStatement.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | import com.intellij.psi.PsiNamedElement;
 8 | import com.intellij.openapi.util.TextRange;
 9 | 
10 | public interface DjinniImportStatement extends PsiNamedElement {
11 | 
12 |   @NotNull
13 |   PsiElement getAt();
14 | 
15 |   @NotNull
16 |   PsiElement getImport();
17 | 
18 |   @NotNull
19 |   PsiElement getStringLiteral();
20 | 
21 |   @NotNull
22 |   String getName();
23 | 
24 |   PsiElement setName(String newName);
25 | 
26 |   TextRange getRangeOfPath();
27 | 
28 |   @NotNull
29 |   String getPath();
30 | 
31 | }
32 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniInterfaceFunctionParam.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniInterfaceFunctionParam extends PsiElement {
 9 | 
10 |   @NotNull
11 |   DjinniTypeReference getTypeReference();
12 | 
13 |   @NotNull
14 |   PsiElement getColon();
15 | 
16 |   @NotNull
17 |   PsiElement getIdentifier();
18 | 
19 | }
20 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniInterfaceFunctionParamList.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniInterfaceFunctionParamList extends PsiElement {
 9 | 
10 |   @NotNull
11 |   DjinniInterfaceFunctionParam getInterfaceFunctionParam();
12 | 
13 |   @Nullable
14 |   DjinniInterfaceFunctionParamList getInterfaceFunctionParamList();
15 | 
16 |   @Nullable
17 |   PsiElement getListSeparator();
18 | 
19 | }
20 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniInterfaceMember.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniInterfaceMember extends PsiElement {
 9 | 
10 |   @Nullable
11 |   DjinniConstMember getConstMember();
12 | 
13 |   @Nullable
14 |   DjinniInterfaceMemberFunction getInterfaceMemberFunction();
15 | 
16 | }
17 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniInterfaceTypeVariant.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniInterfaceTypeVariant extends PsiElement {
 9 | 
10 |   @NotNull
11 |   List<DjinniGenerator> getGeneratorList();
12 | 
13 |   @NotNull
14 |   PsiElement getInterface();
15 | 
16 | }
17 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniPredefinedType.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniPredefinedType extends PsiElement {
 9 | 
10 |   @Nullable
11 |   DjinniBasicType getBasicType();
12 | 
13 |   @Nullable
14 |   DjinniGenericBasicType getGenericBasicType();
15 | 
16 | }
17 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniRecordMember.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniRecordMember extends PsiElement {
 9 | 
10 |   @Nullable
11 |   DjinniConstMember getConstMember();
12 | 
13 |   @Nullable
14 |   DjinniRecordMemberVariable getRecordMemberVariable();
15 | 
16 | }
17 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniRecordMemberVariable.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniRecordMemberVariable extends PsiElement {
 9 | 
10 |   @NotNull
11 |   DjinniTypeReference getTypeReference();
12 | 
13 |   @NotNull
14 |   PsiElement getColon();
15 | 
16 |   @NotNull
17 |   PsiElement getSemicolon();
18 | 
19 |   @NotNull
20 |   PsiElement getIdentifier();
21 | 
22 | }
23 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniRecordTypeVariant.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniRecordTypeVariant extends PsiElement {
 9 | 
10 |   @NotNull
11 |   List<DjinniGenerator> getGeneratorList();
12 | 
13 |   @NotNull
14 |   PsiElement getRecord();
15 | 
16 | }
17 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/DjinniTypeReference.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface DjinniTypeReference extends DjinniNamedElement {
 9 | 
10 |   @Nullable
11 |   DjinniPredefinedType getPredefinedType();
12 | 
13 |   @Nullable
14 |   PsiElement getIdentifier();
15 | 
16 |   String getName();
17 | 
18 |   PsiElement setName(String newName);
19 | 
20 |   @Nullable
21 |   PsiElement getNameIdentifier();
22 | 
23 | }
24 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/YamlEntry.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface YamlEntry extends PsiElement {
 9 | 
10 |   @Nullable
11 |   YamlLhs getLhs();
12 | 
13 |   @Nullable
14 |   YamlRhs getRhs();
15 | 
16 |   @Nullable
17 |   PsiElement getSeparator();
18 | 
19 | }
20 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/YamlLhs.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public interface YamlLhs extends PsiElement {
 9 | 
10 |   @NotNull
11 |   PsiElement getKey();
12 | 
13 | }
14 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/YamlRhs.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import java.util.List;
 5 | import org.jetbrains.annotations.*;
 6 | import com.intellij.psi.PsiElement;
 7 | import com.intellij.navigation.ItemPresentation;
 8 | 
 9 | public interface YamlRhs extends PsiElement {
10 | 
11 |   @NotNull
12 |   PsiElement getValue();
13 | 
14 |   String getName();
15 | 
16 |   ItemPresentation getPresentation();
17 | 
18 | }
19 | 


--------------------------------------------------------------------------------
/intellij-plugin/gen/com/dropbox/djinni/ideaplugin/psi/YamlVisitor.java:
--------------------------------------------------------------------------------
 1 | // This is a generated file. Not intended for manual editing.
 2 | package com.dropbox.djinni.ideaplugin.psi;
 3 | 
 4 | import org.jetbrains.annotations.*;
 5 | import com.intellij.psi.PsiElementVisitor;
 6 | import com.intellij.psi.PsiElement;
 7 | 
 8 | public class YamlVisitor extends PsiElementVisitor {
 9 | 
10 |   public void visitEntry(@NotNull YamlEntry o) {
11 |     visitPsiElement(o);
12 |   }
13 | 
14 |   public void visitLhs(@NotNull YamlLhs o) {
15 |     visitPsiElement(o);
16 |   }
17 | 
18 |   public void visitRhs(@NotNull YamlRhs o) {
19 |     visitPsiElement(o);
20 |   }
21 | 
22 |   public void visitPsiElement(@NotNull PsiElement o) {
23 |     visitElement(o);
24 |   }
25 | 
26 | }
27 | 


--------------------------------------------------------------------------------
/intellij-plugin/src/com/dropbox/djinni/resources/djinni.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dropbox/djinni/4f3aa6971b2b539cfadec4df2243a268651c4de3/intellij-plugin/src/com/dropbox/djinni/resources/djinni.png


--------------------------------------------------------------------------------
/src/.gitignore:
--------------------------------------------------------------------------------
1 | /target
2 | /project/project
3 | /project/target
4 | /test/result
5 | /classes
6 | 


--------------------------------------------------------------------------------
/src/.idea/.name:
--------------------------------------------------------------------------------
1 | djinni
2 | 


--------------------------------------------------------------------------------
/src/.idea/compiler.xml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <project version="4">
 3 |   <component name="CompilerConfiguration">
 4 |     <option name="DEFAULT_COMPILER" value="Javac" />
 5 |     <resourceExtensions />
 6 |     <wildcardResourcePatterns>
 7 |       <entry name="!?*.java" />
 8 |       <entry name="!?*.form" />
 9 |       <entry name="!?*.class" />
10 |       <entry name="!?*.groovy" />
11 |       <entry name="!?*.scala" />
12 |       <entry name="!?*.flex" />
13 |       <entry name="!?*.kt" />
14 |       <entry name="!?*.clj" />
15 |     </wildcardResourcePatterns>
16 |     <annotationProcessing>
17 |       <profile default="true" name="Default" enabled="false">
18 |         <processorPath useClasspath="true" />
19 |       </profile>
20 |     </annotationProcessing>
21 |   </component>
22 | </project>
23 | 
24 | 


--------------------------------------------------------------------------------
/src/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 | <component name="CopyrightManager">
2 |   <settings default="" />
3 | </component>


--------------------------------------------------------------------------------
/src/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <project version="4">
3 |   <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false">
4 |     <file url="PROJECT" charset="UTF-8" />
5 |   </component>
6 | </project>


--------------------------------------------------------------------------------
/src/.idea/highlighting.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <project version="4" />


--------------------------------------------------------------------------------
/src/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 | <component name="InspectionProjectProfileManager">
2 |   <settings>
3 |     <option name="PROJECT_PROFILE" value="Project Default" />
4 |     <option name="USE_PROJECT_PROFILE" value="true" />
5 |     <version value="1.0" />
6 |   </settings>
7 | </component>


--------------------------------------------------------------------------------
/src/.idea/libraries/SBT__com_github_scopt_scopt_2_11_3_2_0_jar.xml:
--------------------------------------------------------------------------------
1 | <component name="libraryTable">
2 |   <library name="SBT: com.github.scopt:scopt_2.11:3.2.0:jar">
3 |     <CLASSES>
4 |       <root url="jar://$USER_HOME$/.ivy2/cache/com.github.scopt/scopt_2.11/jars/scopt_2.11-3.2.0.jar!/" />
5 |     </CLASSES>
6 |     <JAVADOC />
7 |     <SOURCES />
8 |   </library>
9 | </component>


--------------------------------------------------------------------------------
/src/.idea/libraries/SBT__org_scala_lang_modules_scala_parser_combinators_2_11_1_0_1_jar.xml:
--------------------------------------------------------------------------------
1 | <component name="libraryTable">
2 |   <library name="SBT: org.scala-lang.modules:scala-parser-combinators_2.11:1.0.1:jar">
3 |     <CLASSES>
4 |       <root url="jar://$USER_HOME$/.ivy2/cache/org.scala-lang.modules/scala-parser-combinators_2.11/bundles/scala-parser-combinators_2.11-1.0.1.jar!/" />
5 |     </CLASSES>
6 |     <JAVADOC />
7 |     <SOURCES />
8 |   </library>
9 | </component>


--------------------------------------------------------------------------------
/src/.idea/libraries/SBT__org_yaml_snakeyaml_1_15_jar.xml:
--------------------------------------------------------------------------------
1 | <component name="libraryTable">
2 |   <library name="SBT: org.yaml:snakeyaml:1.15:jar">
3 |     <CLASSES>
4 |       <root url="jar://$USER_HOME$/.ivy2/cache/org.yaml/snakeyaml/bundles/snakeyaml-1.15.jar!/" />
5 |     </CLASSES>
6 |     <JAVADOC />
7 |     <SOURCES />
8 |   </library>
9 | </component>


--------------------------------------------------------------------------------
/src/.idea/misc.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <project version="4">
3 |   <component name="EntryPointsManager">
4 |     <entry_points version="2.0" />
5 |   </component>
6 |   <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
7 |     <output url="file://$PROJECT_DIR$/classes" />
8 |   </component>
9 | </project>


--------------------------------------------------------------------------------
/src/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <project version="4">
3 |   <component name="VcsDirectoryMappings">
4 |     <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
5 |   </component>
6 | </project>


--------------------------------------------------------------------------------
/src/build.sbt:
--------------------------------------------------------------------------------
 1 | import com.typesafe.sbt.SbtStartScript
 2 | 
 3 | scalaVersion := "2.11.12"
 4 | 
 5 | libraryDependencies ++= Seq(
 6 | 	"org.scala-lang.modules" %% "scala-parser-combinators" % "1.0.1",
 7 | 	"org.yaml" % "snakeyaml" % "1.15"
 8 | )
 9 | 
10 | scalaSource in Compile := baseDirectory.value / "source"
11 | 
12 | sourcesInBase := false
13 | 
14 | // 143 chars is the filename length limit in eCryptfs, commonly used in linux distros to encrypt homedirs.
15 | // Make scala respect that limit via max-classfile-name, or compilation fails.
16 | scalacOptions ++= Seq("-unchecked", "-deprecation", "-feature", "-Xmax-classfile-name", "143")
17 | 
18 | libraryDependencies += "com.github.scopt" %% "scopt" % "3.2.0"
19 | 
20 | Seq(SbtStartScript.startScriptForClassesSettings: _*)
21 | 


--------------------------------------------------------------------------------
/src/project/build.properties:
--------------------------------------------------------------------------------
1 | sbt.version=0.13.17
2 | 


--------------------------------------------------------------------------------
/src/project/plugins.sbt:
--------------------------------------------------------------------------------
1 | addSbtPlugin("com.typesafe.sbt" % "sbt-start-script" % "0.10.0")
2 | 
3 | addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.5")


--------------------------------------------------------------------------------
/src/run:
--------------------------------------------------------------------------------
 1 | #! /usr/bin/env bash
 2 | set -eu
 3 | 
 4 | # Locate the script file.  Cross symlinks if necessary.
 5 | loc="$0"
 6 | while [ -h "$loc" ]; do
 7 |     ls=`ls -ld "$loc"`
 8 |     link=`expr "$ls" : '.*-> \(.*\)
#39;`
 9 |     if expr "$link" : '/.*' > /dev/null; then
10 |         loc="$link"  # Absolute link
11 |     else
12 |         loc="`dirname "$loc"`/$link"  # Relative link
13 |     fi
14 | done
15 | base_dir=$(cd "`dirname "$loc"`" > /dev/null && pwd)
16 | 
17 | "$base_dir/build"
18 | 
19 | # Determine os version and choose correspondent .sh or .bat file accordingly.
20 | os_version="`uname -a`"
21 | 
22 | if [[ $os_version == *"MINGW"* ]] || [[ $os_version == *"MSYS_NT"* ]]; then  
23 |   cmd //C "$base_dir/target/start.bat" "$@"
24 | else  
25 |   exec "$base_dir/target/start" "$@"
26 | fi
27 | 


--------------------------------------------------------------------------------
/src/run-assume-built:
--------------------------------------------------------------------------------
 1 | #! /usr/bin/env bash
 2 | set -eu
 3 | 
 4 | # Locate the script file.  Cross symlinks if necessary.
 5 | loc="$0"
 6 | while [ -h "$loc" ]; do
 7 |     ls=`ls -ld "$loc"`
 8 |     link=`expr "$ls" : '.*-> \(.*\)
#39;`
 9 |     if expr "$link" : '/.*' > /dev/null; then
10 |         loc="$link"  # Absolute link
11 |     else
12 |         loc="`dirname "$loc"`/$link"  # Relative link
13 |     fi
14 | done
15 | base_dir=$(cd "`dirname "$loc"`" > /dev/null && pwd)
16 | 
17 | exec "$base_dir/target/start" "$@"
18 | 


--------------------------------------------------------------------------------
/src/support/sbt-launch.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dropbox/djinni/4f3aa6971b2b539cfadec4df2243a268651c4de3/src/support/sbt-launch.jar


--------------------------------------------------------------------------------
/src/support/sbt.resolvers.properties:
--------------------------------------------------------------------------------
1 | [repositories]
2 | local
3 | ssl-typesafe-ivy-releases: https://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
4 | ssl-maven-central: https://repo1.maven.org/maven2
5 | ssl-sbt-plugins: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/,[organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
6 | 


--------------------------------------------------------------------------------
/src/support/sbt.security.policy:
--------------------------------------------------------------------------------
 1 | // This is not intended to be an air-tight security policy against an adversarial
 2 | // program.  SBT is our friend.  We're just trying to catch cases where we misconfigure
 3 | // SBT and it ends up trying to use a non-SSL host.
 4 | 
 5 | grant {
 6 |     permission java.net.SocketPermission "*:443", "connect,resolve";
 7 | 
 8 |     permission java.io.FilePermission "<<ALL FILES>>", "read,write,execute,delete";
 9 |     permission java.util.PropertyPermission "*", "read,write";
10 |     permission java.lang.RuntimePermission "*";
11 |     permission java.lang.reflect.ReflectPermission "*";
12 |     permission java.security.SecurityPermission "*";
13 |     permission java.net.NetPermission "*";
14 |     permission javax.net.ssl.SSLPermission "*";
15 | };
16 | 


--------------------------------------------------------------------------------
/support-lib/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dropbox/djinni/4f3aa6971b2b539cfadec4df2243a268651c4de3/support-lib/.gitignore


--------------------------------------------------------------------------------
/support-lib/support-lib.iml:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <module type="JAVA_MODULE" version="4">
 3 |   <component name="NewModuleRootManager" inherit-compiler-output="true">
 4 |     <exclude-output />
 5 |     <content url="file://$MODULE_DIR
quot;>
 6 |       <sourceFolder url="file://$MODULE_DIR$/java" isTestSource="false" />
 7 |     </content>
 8 |     <orderEntry type="inheritedJdk" />
 9 |     <orderEntry type="sourceFolder" forTests="false" />
10 |   </component>
11 | </module>


--------------------------------------------------------------------------------
/test-suite/Makefile:
--------------------------------------------------------------------------------
 1 | .PHONY: all djinni objc clean_objc java clean_java linux_docker clean
 2 | 
 3 | all: objc java
 4 | 
 5 | djinni:
 6 | 	./run_djinni.sh
 7 | 
 8 | objc: djinni
 9 | 	cd objc; xcodebuild -sdk iphonesimulator -project DjinniObjcTest.xcodeproj -scheme DjinniObjcTest test -destination 'platform=iOS Simulator,name=iPhone 7,OS=latest'
10 | 
11 | clean_objc:
12 | 	cd objc && xcodebuild -sdk iphonesimulator -project DjinniObjcTest.xcodeproj -scheme DjinniObjcTest clean
13 | 
14 | java: djinni
15 | 	cd java && ant compile test
16 | 
17 | clean_java:
18 | 	cd java && ant clean
19 | 
20 | linux_docker: djinni
21 | 	cd ..; ./test-suite/java/docker/run_dockerized_test.sh
22 | 
23 | clean: clean_objc clean_java
24 | 


--------------------------------------------------------------------------------
/test-suite/djinni/all.djinni:
--------------------------------------------------------------------------------
1 | @import "common.djinni"
2 | 
3 | @import "enum_flags.djinni"
4 | @import "constant_enum.djinni"
5 | 
6 | @import "vendor/third-party/date.djinni"
7 | @import "third-party/duration.djinni"
8 | 


--------------------------------------------------------------------------------
/test-suite/djinni/common.djinni:
--------------------------------------------------------------------------------
 1 | @import "set.djinni"
 2 | @import "derivings.djinni"
 3 | @import "nested_collection.djinni"
 4 | @import "map.djinni"
 5 | @import "primitive_list.djinni"
 6 | @import "exception.djinni"
 7 | @import "client_interface.djinni"
 8 | @import "enum.djinni"
 9 | @import "user_token.djinni"
10 | @import "test.djinni"
11 | @import "primtypes.djinni"
12 | @import "constants.djinni"
13 | @import "multiple_inheritance.djinni"
14 | @import "single_language_interfaces.djinni"
15 | @import "extended_record.djinni"
16 | @import "varnames.djinni"
17 | @import "relative_paths.djinni"
18 | @import "parcelable.djinni"
19 | 


--------------------------------------------------------------------------------
/test-suite/djinni/constant_enum.djinni:
--------------------------------------------------------------------------------
 1 | # enum for use in constants
 2 | constant_enum = enum {
 3 |     some_value;
 4 |     some_other_value;
 5 | }
 6 | 
 7 | # Record containing enum constant
 8 | constant_with_enum = record {
 9 |     const const_enum: constant_enum = constant_enum::some_value;
10 | } deriving (parcelable)
11 | 
12 | # Interface containing enum constant
13 | constant_interface_with_enum = interface +c {
14 |     const const_enum: constant_enum = constant_enum::some_value;
15 | }
16 | 


--------------------------------------------------------------------------------
/test-suite/djinni/derivings.djinni:
--------------------------------------------------------------------------------
 1 | record_with_derivings = record {
 2 |     eight: i8;
 3 |     sixteen: i16;
 4 |     thirtytwo: i32;
 5 |     sixtyfour: i64;
 6 |     fthirtytwo: f32;
 7 |     fsixtyfour: f64;
 8 |     d: date;
 9 |     s: string;
10 | } deriving (eq, ord, parcelable)
11 | 
12 | record_with_nested_derivings = record {
13 |     key: i32;
14 |     rec: record_with_derivings;
15 | } deriving (eq, ord, parcelable)
16 | 


--------------------------------------------------------------------------------
/test-suite/djinni/enum_flags.djinni:
--------------------------------------------------------------------------------
 1 | access_flags = flags {
 2 |   nobody = none;
 3 |   owner_read;
 4 |   owner_write;
 5 |   owner_execute;
 6 |   group_read;
 7 |   group_write;
 8 |   group_execute;
 9 |   system_read;
10 |   system_write;
11 |   system_execute;
12 |   everybody = all;
13 | }
14 | 
15 | empty_flags = flags {
16 |   none = none;
17 |   all = all;
18 | }
19 | 
20 | flag_roundtrip = interface +c {
21 |   static roundtrip_access(flag: access_flags): access_flags;
22 |   static roundtrip_empty(flag: empty_flags): empty_flags;
23 |   static roundtrip_access_boxed(flag: optional<access_flags>): optional<access_flags>;
24 |   static roundtrip_empty_boxed(flag: optional<empty_flags>): optional<empty_flags>;
25 | }
26 | 
27 | record_with_flags = record {
28 |   access: access_flags;
29 | } deriving (parcelable)
30 | 


--------------------------------------------------------------------------------
/test-suite/djinni/exception.djinni:
--------------------------------------------------------------------------------
1 | cpp_exception = interface +c {
2 |     throw_an_exception(): i32;
3 |     static get(): cpp_exception;
4 | }
5 | 


--------------------------------------------------------------------------------
/test-suite/djinni/extended_record.djinni:
--------------------------------------------------------------------------------
 1 | # Extended record
 2 | extended_record = record +c {
 3 |     foo: bool;
 4 |     const extended_record_const: extended_record = { foo = true };
 5 | }
 6 | 
 7 | record_using_extended_record = record {
 8 |     er: extended_record;
 9 |     const cr: record_using_extended_record = {er = { foo = false } };
10 | }
11 | 
12 | interface_using_extended_record = interface +c {
13 |     meth(er: extended_record): extended_record;
14 |     const cr: record_using_extended_record = {er = { foo = false } };
15 | }
16 | 


--------------------------------------------------------------------------------
/test-suite/djinni/map.djinni:
--------------------------------------------------------------------------------
1 | map_record = record {
2 |     map: map<string, i64>;
3 | 	imap: map<i32, i32>;
4 | } deriving (parcelable)
5 | 
6 | map_list_record = record {
7 |     map_list: list<map<string, i64>>;
8 | } deriving (parcelable)
9 | 


--------------------------------------------------------------------------------
/test-suite/djinni/nested_collection.djinni:
--------------------------------------------------------------------------------
1 | nested_collection = record {
2 |     set_list : list<set<string>>;
3 | } deriving(parcelable)
4 | 


--------------------------------------------------------------------------------
/test-suite/djinni/primitive_list.djinni:
--------------------------------------------------------------------------------
1 | primitive_list = record {
2 |     list: list<i64>;
3 | } deriving (parcelable)
4 | 


--------------------------------------------------------------------------------
/test-suite/djinni/primtypes.djinni:
--------------------------------------------------------------------------------
 1 | assorted_primitives = record {
 2 |     b: bool;
 3 |     eight: i8;
 4 |     sixteen: i16;
 5 |     thirtytwo: i32;
 6 |     sixtyfour: i64;
 7 |     fthirtytwo: f32;
 8 |     fsixtyfour: f64;
 9 | 
10 |     o_b: optional<bool>;
11 |     o_eight: optional<i8>;
12 |     o_sixteen: optional<i16>;
13 |     o_thirtytwo: optional<i32>;
14 |     o_sixtyfour: optional<i64>;
15 |     o_fthirtytwo: optional<f32>;
16 |     o_fsixtyfour: optional<f64>;
17 | } deriving (eq, parcelable)
18 | 


--------------------------------------------------------------------------------
/test-suite/djinni/relative_paths.djinni:
--------------------------------------------------------------------------------
1 | @import "./varnames.djinni"
2 | @import "../djinni/varnames.djinni"
3 | 


--------------------------------------------------------------------------------
/test-suite/djinni/set.djinni:
--------------------------------------------------------------------------------
1 | set_record = record {
2 |     set: set<string>;
3 | 	iset: set<i32>;
4 | } deriving (parcelable)
5 | 


--------------------------------------------------------------------------------
/test-suite/djinni/single_language_interfaces.djinni:
--------------------------------------------------------------------------------
 1 | objc_only_listener = interface +o {}
 2 | java_only_listener = interface +j {}
 3 | 
 4 | # Generating and compiling this makes sure other languages don't break
 5 | # on references to interfaces they don't need.
 6 | uses_single_language_listeners = interface +o +j +c {
 7 |   callForObjC(l: objc_only_listener);
 8 |   returnForObjC(): objc_only_listener;
 9 |   callForJava(l: java_only_listener);
10 |   returnForJava(): java_only_listener;
11 | }
12 | 


--------------------------------------------------------------------------------
/test-suite/djinni/user_token.djinni:
--------------------------------------------------------------------------------
1 | user_token = interface +c +j +o {
2 |   whoami() : string;
3 | }
4 | 


--------------------------------------------------------------------------------
/test-suite/djinni/varnames.djinni:
--------------------------------------------------------------------------------
 1 | # Underscore is used as a separator in Djinni names, so we don't really
 2 | # anticipate it to be used as a prefix/suffix.  Some name styles behave
 3 | # badly when it is.  However this test case ensures we at least don't crash.
 4 | _varname_record_ = record {
 5 |     _field_: i8;
 6 | }
 7 | 
 8 | _varname_interface_ = interface +c {
 9 |     # We should also rewrite parameter names in docstrings.
10 |     # _r_arg_ should be rewritten.
11 |     # _i_arg_ should not.
12 |     _rmethod_(_r_arg_: _varname_record_): _varname_record_;
13 |     _imethod_(_i_arg_: _varname_interface_): _varname_interface_;
14 | }
15 | 


--------------------------------------------------------------------------------
/test-suite/djinni/vendor/third-party/date.djinni:
--------------------------------------------------------------------------------
 1 | @extern "date.yaml"
 2 | 
 3 | date_record = record {
 4 |     created_at: extern_date;
 5 | } deriving(eq, ord, parcelable)
 6 | 
 7 | map_date_record = record {
 8 |     dates_by_id: map<string, extern_date>;
 9 | }
10 | 


--------------------------------------------------------------------------------
/test-suite/djinni/wchar_test.djinni:
--------------------------------------------------------------------------------
 1 | wchar_test_rec = record {
 2 |   s: string;
 3 | }
 4 | 
 5 | wchar_test_helpers = interface +c {
 6 |   static get_record() : wchar_test_rec;
 7 |   static get_string() : string;
 8 |   static check_string(str: string) : bool;
 9 |   static check_record(rec: wchar_test_rec) : bool;
10 | }
11 | 


--------------------------------------------------------------------------------
/test-suite/djinni/yaml-test.djinni:
--------------------------------------------------------------------------------
 1 | @extern "yaml-test.yaml"
 2 | 
 3 | # This file tests YAML dumped by Djinni can be parsed back in
 4 | 
 5 | extern_record_with_derivings = record
 6 | {
 7 | 	member: test_record_with_derivings;
 8 | 	e: test_color;
 9 | } deriving(eq, ord, parcelable)
10 | 
11 | extern_interface_1 = interface +c
12 | {
13 | 	foo(i: test_client_interface): test_client_returned_record;
14 | }
15 | 
16 | extern_interface_2 = interface +j +o
17 | {
18 | 	foo(i: test_test_helpers): extern_record_with_derivings;
19 | }
20 | 
21 | test_optional_extern_interface_record = record
22 | {
23 | 	sample_interface: optional<test_sample_interface>;
24 | }


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/Conflict.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | namespace testsuite {
 7 | 
 8 | /**
 9 |  * Test for conflict of method name with an interface name.
10 |  * See the comments about scopeSymbols in CppMarshal.scala for more info.
11 |  */
12 | class Conflict {
13 | public:
14 |     virtual ~Conflict() {}
15 | };
16 | 
17 | }  // namespace testsuite
18 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/_varname_interface_.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from varnames.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <memory>
 7 | 
 8 | namespace testsuite {
 9 | 
10 | struct VarnameRecord;
11 | 
12 | class VarnameInterface {
13 | public:
14 |     virtual ~VarnameInterface() {}
15 | 
16 |     /**
17 |      * We should also rewrite parameter names in docstrings.
18 |      * _r_arg_ should be rewritten.
19 |      * _i_arg_ should not.
20 |      */
21 |     virtual VarnameRecord _rmethod_(const VarnameRecord & _r_arg_) = 0;
22 | 
23 |     virtual std::shared_ptr<VarnameInterface> _imethod_(const std::shared_ptr<VarnameInterface> & _i_arg_) = 0;
24 | };
25 | 
26 | }  // namespace testsuite
27 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/_varname_record_.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from varnames.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <cstdint>
 7 | #include <utility>
 8 | 
 9 | namespace testsuite {
10 | 
11 | /**
12 |  * Underscore is used as a separator in Djinni names, so we don't really
13 |  * anticipate it to be used as a prefix/suffix.  Some name styles behave
14 |  * badly when it is.  However this test case ensures we at least don't crash.
15 |  */
16 | struct VarnameRecord final {
17 |     int8_t _field_;
18 | 
19 |     VarnameRecord(int8_t _field__)
20 |     : _field_(std::move(_field__))
21 |     {}
22 | };
23 | 
24 | }  // namespace testsuite
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/conflict_user.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <memory>
 7 | #include <unordered_set>
 8 | 
 9 | namespace testsuite {
10 | 
11 | class Conflict;
12 | 
13 | class ConflictUser {
14 | public:
15 |     virtual ~ConflictUser() {}
16 | 
17 |     virtual std::shared_ptr<::testsuite::Conflict> Conflict() = 0;
18 | 
19 |     virtual bool conflict_arg(const std::unordered_set<std::shared_ptr<::testsuite::Conflict>> & cs) = 0;
20 | };
21 | 
22 | }  // namespace testsuite
23 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/constant_enum.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <functional>
 7 | 
 8 | namespace testsuite {
 9 | 
10 | enum class constant_enum : int {
11 |     SOME_VALUE,
12 |     SOME_OTHER_VALUE,
13 | };
14 | 
15 | }  // namespace testsuite
16 | 
17 | namespace std {
18 | 
19 | template <>
20 | struct hash<::testsuite::constant_enum> {
21 |     size_t operator()(::testsuite::constant_enum type) const {
22 |         return std::hash<int>()(static_cast<int>(type));
23 |     }
24 | };
25 | 
26 | }  // namespace std
27 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/constant_interface_with_enum.cpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | #include "constant_interface_with_enum.hpp"  // my header
 5 | #include "constant_enum.hpp"
 6 | 
 7 | namespace testsuite {
 8 | 
 9 | constant_enum const ConstantInterfaceWithEnum::CONST_ENUM = constant_enum::SOME_VALUE;
10 | 
11 | }  // namespace testsuite
12 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/constant_interface_with_enum.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | namespace testsuite {
 7 | 
 8 | enum class constant_enum;
 9 | 
10 | /** Interface containing enum constant */
11 | class ConstantInterfaceWithEnum {
12 | public:
13 |     virtual ~ConstantInterfaceWithEnum() {}
14 | 
15 |     static constant_enum const CONST_ENUM;
16 | };
17 | 
18 | }  // namespace testsuite
19 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/constant_record.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constants.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <cstdint>
 7 | #include <string>
 8 | #include <utility>
 9 | 
10 | namespace testsuite {
11 | 
12 | /** Record for use in constants */
13 | struct ConstantRecord final {
14 |     int32_t some_integer;
15 |     std::string some_string;
16 | 
17 |     ConstantRecord(int32_t some_integer_,
18 |                    std::string some_string_)
19 |     : some_integer(std::move(some_integer_))
20 |     , some_string(std::move(some_string_))
21 |     {}
22 | };
23 | 
24 | }  // namespace testsuite
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/constant_with_enum.cpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | #include "constant_with_enum.hpp"  // my header
 5 | 
 6 | namespace testsuite {
 7 | 
 8 | constant_enum const ConstantWithEnum::CONST_ENUM = constant_enum::SOME_VALUE;
 9 | 
10 | }  // namespace testsuite
11 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/constant_with_enum.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "constant_enum.hpp"
 7 | #include <utility>
 8 | 
 9 | namespace testsuite {
10 | 
11 | /** Record containing enum constant */
12 | struct ConstantWithEnum final {
13 | 
14 |     static constant_enum const CONST_ENUM;
15 | };
16 | 
17 | }  // namespace testsuite
18 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/cpp_exception.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from exception.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <cstdint>
 7 | #include <memory>
 8 | 
 9 | namespace testsuite {
10 | 
11 | class CppException {
12 | public:
13 |     virtual ~CppException() {}
14 | 
15 |     virtual int32_t throw_an_exception() = 0;
16 | 
17 |     static std::shared_ptr<CppException> get();
18 | };
19 | 
20 | }  // namespace testsuite
21 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/empty_record.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <utility>
 7 | 
 8 | namespace testsuite {
 9 | 
10 | /**
11 |  * Empty record
12 |  * (Second line of multi-line documentation.
13 |  *   Indented third line of multi-line documentation.)
14 |  */
15 | struct EmptyRecord final {
16 | };
17 | 
18 | }  // namespace testsuite
19 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/extended_record_base.cpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #include "extended_record_base.hpp"  // my header
 5 | #include "../../handwritten-src/cpp/extended_record.hpp"
 6 | 
 7 | namespace testsuite {
 8 | 
 9 | ExtendedRecord const ExtendedRecordBase::EXTENDED_RECORD_CONST = ExtendedRecord(
10 |     true /* foo */ );
11 | 
12 | }  // namespace testsuite
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/extern_interface_1.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from yaml-test.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "client_interface.hpp"
 7 | #include "client_returned_record.hpp"
 8 | #include <memory>
 9 | 
10 | class ExternInterface1 {
11 | public:
12 |     virtual ~ExternInterface1() {}
13 | 
14 |     virtual ::testsuite::ClientReturnedRecord foo(const std::shared_ptr<::testsuite::ClientInterface> & i) = 0;
15 | };
16 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/extern_interface_2.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from yaml-test.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "test_helpers.hpp"
 7 | #include <memory>
 8 | 
 9 | struct ExternRecordWithDerivings;
10 | 
11 | class ExternInterface2 {
12 | public:
13 |     virtual ~ExternInterface2() {}
14 | 
15 |     virtual ExternRecordWithDerivings foo(const std::shared_ptr<::testsuite::TestHelpers> & i) = 0;
16 | };
17 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/first_listener.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | namespace testsuite {
 7 | 
 8 | /** Used for ObjC multiple inheritance tests */
 9 | class FirstListener {
10 | public:
11 |     virtual ~FirstListener() {}
12 | 
13 |     virtual void first() = 0;
14 | };
15 | 
16 | }  // namespace testsuite
17 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/interface_using_extended_record.cpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #include "interface_using_extended_record.hpp"  // my header
 5 | #include "../../handwritten-src/cpp/extended_record.hpp"
 6 | #include "record_using_extended_record.hpp"
 7 | 
 8 | namespace testsuite {
 9 | 
10 | RecordUsingExtendedRecord const InterfaceUsingExtendedRecord::CR = RecordUsingExtendedRecord(
11 |     ExtendedRecord(
12 |         false /* foo */ ) /* er */ );
13 | 
14 | }  // namespace testsuite
15 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/interface_using_extended_record.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | namespace testsuite {
 7 | 
 8 | struct ExtendedRecord;
 9 | struct RecordUsingExtendedRecord;
10 | 
11 | class InterfaceUsingExtendedRecord {
12 | public:
13 |     virtual ~InterfaceUsingExtendedRecord() {}
14 | 
15 |     static RecordUsingExtendedRecord const CR;
16 | 
17 |     virtual ExtendedRecord meth(const ExtendedRecord & er) = 0;
18 | };
19 | 
20 | }  // namespace testsuite
21 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/java_only_listener.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from single_language_interfaces.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | namespace testsuite {
 7 | 
 8 | class JavaOnlyListener {
 9 | public:
10 |     virtual ~JavaOnlyListener() {}
11 | };
12 | 
13 | }  // namespace testsuite
14 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/map_date_record.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from date.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <chrono>
 7 | #include <string>
 8 | #include <unordered_map>
 9 | #include <utility>
10 | 
11 | namespace testsuite {
12 | 
13 | struct MapDateRecord final {
14 |     std::unordered_map<std::string, std::chrono::system_clock::time_point> dates_by_id;
15 | 
16 |     MapDateRecord(std::unordered_map<std::string, std::chrono::system_clock::time_point> dates_by_id_)
17 |     : dates_by_id(std::move(dates_by_id_))
18 |     {}
19 | };
20 | 
21 | }  // namespace testsuite
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/map_list_record.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from map.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <cstdint>
 7 | #include <string>
 8 | #include <unordered_map>
 9 | #include <utility>
10 | #include <vector>
11 | 
12 | namespace testsuite {
13 | 
14 | struct MapListRecord final {
15 |     std::vector<std::unordered_map<std::string, int64_t>> map_list;
16 | 
17 |     MapListRecord(std::vector<std::unordered_map<std::string, int64_t>> map_list_)
18 |     : map_list(std::move(map_list_))
19 |     {}
20 | };
21 | 
22 | }  // namespace testsuite
23 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/map_record.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from map.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <cstdint>
 7 | #include <string>
 8 | #include <unordered_map>
 9 | #include <utility>
10 | 
11 | namespace testsuite {
12 | 
13 | struct MapRecord final {
14 |     std::unordered_map<std::string, int64_t> map;
15 |     std::unordered_map<int32_t, int32_t> imap;
16 | 
17 |     MapRecord(std::unordered_map<std::string, int64_t> map_,
18 |               std::unordered_map<int32_t, int32_t> imap_)
19 |     : map(std::move(map_))
20 |     , imap(std::move(imap_))
21 |     {}
22 | };
23 | 
24 | }  // namespace testsuite
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/nested_collection.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from nested_collection.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | #include <unordered_set>
 8 | #include <utility>
 9 | #include <vector>
10 | 
11 | namespace testsuite {
12 | 
13 | struct NestedCollection final {
14 |     std::vector<std::unordered_set<std::string>> set_list;
15 | 
16 |     NestedCollection(std::vector<std::unordered_set<std::string>> set_list_)
17 |     : set_list(std::move(set_list_))
18 |     {}
19 | };
20 | 
21 | }  // namespace testsuite
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/objc_only_listener.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from single_language_interfaces.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | namespace testsuite {
 7 | 
 8 | class ObjcOnlyListener {
 9 | public:
10 |     virtual ~ObjcOnlyListener() {}
11 | };
12 | 
13 | }  // namespace testsuite
14 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/parcelable_list.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | #include <utility>
 8 | #include <vector>
 9 | 
10 | namespace testsuite {
11 | 
12 | struct ParcelableList final {
13 |     std::vector<std::string> l;
14 | 
15 |     ParcelableList(std::vector<std::string> l_)
16 |     : l(std::move(l_))
17 |     {}
18 | };
19 | 
20 | }  // namespace testsuite
21 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/parcelable_list_map_set.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | #include <unordered_map>
 8 | #include <unordered_set>
 9 | #include <utility>
10 | #include <vector>
11 | 
12 | namespace testsuite {
13 | 
14 | struct ParcelableListMapSet final {
15 |     std::vector<std::unordered_map<std::string, std::unordered_set<std::string>>> list_map_set;
16 | 
17 |     ParcelableListMapSet(std::vector<std::unordered_map<std::string, std::unordered_set<std::string>>> list_map_set_)
18 |     : list_map_set(std::move(list_map_set_))
19 |     {}
20 | };
21 | 
22 | }  // namespace testsuite
23 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/parcelable_list_set.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | #include <unordered_set>
 8 | #include <utility>
 9 | #include <vector>
10 | 
11 | namespace testsuite {
12 | 
13 | struct ParcelableListSet final {
14 |     std::vector<std::unordered_set<std::string>> list_set;
15 | 
16 |     ParcelableListSet(std::vector<std::unordered_set<std::string>> list_set_)
17 |     : list_set(std::move(list_set_))
18 |     {}
19 | };
20 | 
21 | }  // namespace testsuite
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/parcelable_map.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | #include <unordered_map>
 8 | #include <utility>
 9 | 
10 | namespace testsuite {
11 | 
12 | struct ParcelableMap final {
13 |     std::unordered_map<std::string, std::string> m;
14 | 
15 |     ParcelableMap(std::unordered_map<std::string, std::string> m_)
16 |     : m(std::move(m_))
17 |     {}
18 | };
19 | 
20 | }  // namespace testsuite
21 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/parcelable_map_list.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | #include <unordered_map>
 8 | #include <utility>
 9 | #include <vector>
10 | 
11 | namespace testsuite {
12 | 
13 | struct ParcelableMapList final {
14 |     std::unordered_map<std::string, std::vector<std::string>> map_set;
15 | 
16 |     ParcelableMapList(std::unordered_map<std::string, std::vector<std::string>> map_set_)
17 |     : map_set(std::move(map_set_))
18 |     {}
19 | };
20 | 
21 | }  // namespace testsuite
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/parcelable_map_set.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | #include <unordered_map>
 8 | #include <unordered_set>
 9 | #include <utility>
10 | 
11 | namespace testsuite {
12 | 
13 | struct ParcelableMapSet final {
14 |     std::unordered_map<std::string, std::unordered_set<std::string>> map_set;
15 | 
16 |     ParcelableMapSet(std::unordered_map<std::string, std::unordered_set<std::string>> map_set_)
17 |     : map_set(std::move(map_set_))
18 |     {}
19 | };
20 | 
21 | }  // namespace testsuite
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/parcelable_optional_list.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "../../handwritten-src/cpp/optional.hpp"
 7 | #include <string>
 8 | #include <utility>
 9 | #include <vector>
10 | 
11 | namespace testsuite {
12 | 
13 | struct ParcelableOptionalList final {
14 |     std::experimental::optional<std::vector<std::string>> optional_set;
15 | 
16 |     ParcelableOptionalList(std::experimental::optional<std::vector<std::string>> optional_set_)
17 |     : optional_set(std::move(optional_set_))
18 |     {}
19 | };
20 | 
21 | }  // namespace testsuite
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/parcelable_optional_map.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "../../handwritten-src/cpp/optional.hpp"
 7 | #include <string>
 8 | #include <unordered_map>
 9 | #include <unordered_set>
10 | #include <utility>
11 | 
12 | namespace testsuite {
13 | 
14 | struct ParcelableOptionalMap final {
15 |     std::experimental::optional<std::unordered_map<std::string, std::unordered_set<std::string>>> optional_set;
16 | 
17 |     ParcelableOptionalMap(std::experimental::optional<std::unordered_map<std::string, std::unordered_set<std::string>>> optional_set_)
18 |     : optional_set(std::move(optional_set_))
19 |     {}
20 | };
21 | 
22 | }  // namespace testsuite
23 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/parcelable_optional_set.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "../../handwritten-src/cpp/optional.hpp"
 7 | #include <string>
 8 | #include <unordered_set>
 9 | #include <utility>
10 | 
11 | namespace testsuite {
12 | 
13 | struct ParcelableOptionalSet final {
14 |     std::experimental::optional<std::unordered_set<std::string>> optional_set;
15 | 
16 |     ParcelableOptionalSet(std::experimental::optional<std::unordered_set<std::string>> optional_set_)
17 |     : optional_set(std::move(optional_set_))
18 |     {}
19 | };
20 | 
21 | }  // namespace testsuite
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/parcelable_set.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | #include <unordered_set>
 8 | #include <utility>
 9 | 
10 | namespace testsuite {
11 | 
12 | struct ParcelableSet final {
13 |     std::unordered_set<std::string> set;
14 | 
15 |     ParcelableSet(std::unordered_set<std::string> set_)
16 |     : set(std::move(set_))
17 |     {}
18 | };
19 | 
20 | }  // namespace testsuite
21 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/primitive_list.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from primitive_list.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <cstdint>
 7 | #include <utility>
 8 | #include <vector>
 9 | 
10 | namespace testsuite {
11 | 
12 | struct PrimitiveList final {
13 |     std::vector<int64_t> list;
14 | 
15 |     PrimitiveList(std::vector<int64_t> list_)
16 |     : list(std::move(list_))
17 |     {}
18 | };
19 | 
20 | }  // namespace testsuite
21 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/record_using_extended_record.cpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #include "record_using_extended_record.hpp"  // my header
 5 | 
 6 | namespace testsuite {
 7 | 
 8 | RecordUsingExtendedRecord const RecordUsingExtendedRecord::CR = RecordUsingExtendedRecord(
 9 |     ExtendedRecord(
10 |         false /* foo */ ) /* er */ );
11 | 
12 | }  // namespace testsuite
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/record_using_extended_record.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "../../handwritten-src/cpp/extended_record.hpp"
 7 | #include <utility>
 8 | 
 9 | namespace testsuite {
10 | 
11 | struct RecordUsingExtendedRecord final {
12 | 
13 |     static RecordUsingExtendedRecord const CR;
14 |     ExtendedRecord er;
15 | 
16 |     RecordUsingExtendedRecord(ExtendedRecord er_)
17 |     : er(std::move(er_))
18 |     {}
19 | };
20 | 
21 | }  // namespace testsuite
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/record_with_flags.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum_flags.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "access_flags.hpp"
 7 | #include <utility>
 8 | 
 9 | namespace testsuite {
10 | 
11 | struct RecordWithFlags final {
12 |     access_flags access;
13 | 
14 |     RecordWithFlags(access_flags access_)
15 |     : access(std::move(access_))
16 |     {}
17 | };
18 | 
19 | }  // namespace testsuite
20 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/return_one.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <cstdint>
 7 | #include <memory>
 8 | 
 9 | namespace testsuite {
10 | 
11 | /** Used for C++ multiple inheritance tests */
12 | class ReturnOne {
13 | public:
14 |     virtual ~ReturnOne() {}
15 | 
16 |     static std::shared_ptr<ReturnOne> get_instance();
17 | 
18 |     virtual int8_t return_one() = 0;
19 | };
20 | 
21 | }  // namespace testsuite
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/return_two.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <cstdint>
 7 | #include <memory>
 8 | 
 9 | namespace testsuite {
10 | 
11 | /** Used for C++ multiple inheritance tests */
12 | class ReturnTwo {
13 | public:
14 |     virtual ~ReturnTwo() {}
15 | 
16 |     static std::shared_ptr<ReturnTwo> get_instance();
17 | 
18 |     virtual int8_t return_two() = 0;
19 | };
20 | 
21 | }  // namespace testsuite
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/reverse_client_interface.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from client_interface.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "../../handwritten-src/cpp/optional.hpp"
 7 | #include <memory>
 8 | #include <string>
 9 | 
10 | namespace testsuite {
11 | 
12 | class ReverseClientInterface {
13 | public:
14 |     virtual ~ReverseClientInterface() {}
15 | 
16 |     virtual std::string return_str() const = 0;
17 | 
18 |     virtual std::string meth_taking_interface(const std::shared_ptr<ReverseClientInterface> & i) = 0;
19 | 
20 |     virtual std::string meth_taking_optional_interface(const std::shared_ptr<ReverseClientInterface> & i) = 0;
21 | 
22 |     static std::shared_ptr<ReverseClientInterface> create();
23 | };
24 | 
25 | }  // namespace testsuite
26 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/sample_interface.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | namespace testsuite {
 7 | 
 8 | /**
 9 |  * we need to test optional interface
10 |  * this one will be used
11 |  */
12 | class SampleInterface {
13 | public:
14 |     virtual ~SampleInterface() {}
15 | };
16 | 
17 | }  // namespace testsuite
18 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/second_listener.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | namespace testsuite {
 7 | 
 8 | /** Used for ObjC multiple inheritance tests */
 9 | class SecondListener {
10 | public:
11 |     virtual ~SecondListener() {}
12 | 
13 |     virtual void second() = 0;
14 | };
15 | 
16 | }  // namespace testsuite
17 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/set_record.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from set.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <cstdint>
 7 | #include <string>
 8 | #include <unordered_set>
 9 | #include <utility>
10 | 
11 | namespace testsuite {
12 | 
13 | struct SetRecord final {
14 |     std::unordered_set<std::string> set;
15 |     std::unordered_set<int32_t> iset;
16 | 
17 |     SetRecord(std::unordered_set<std::string> set_,
18 |               std::unordered_set<int32_t> iset_)
19 |     : set(std::move(set_))
20 |     , iset(std::move(iset_))
21 |     {}
22 | };
23 | 
24 | }  // namespace testsuite
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/test_optional_extern_interface_record.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from yaml-test.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "../../handwritten-src/cpp/optional.hpp"
 7 | #include "sample_interface.hpp"
 8 | #include <memory>
 9 | #include <utility>
10 | 
11 | struct TestOptionalExternInterfaceRecord final {
12 |     std::shared_ptr<::testsuite::SampleInterface> sample_interface;
13 | 
14 |     TestOptionalExternInterfaceRecord(std::shared_ptr<::testsuite::SampleInterface> sample_interface_)
15 |     : sample_interface(std::move(sample_interface_))
16 |     {}
17 | };
18 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/user_token.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from user_token.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | 
 8 | namespace testsuite {
 9 | 
10 | class UserToken {
11 | public:
12 |     virtual ~UserToken() {}
13 | 
14 |     virtual std::string whoami() = 0;
15 | };
16 | 
17 | }  // namespace testsuite
18 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/wchar_test_helpers.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from wchar_test.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | 
 8 | namespace testsuite {
 9 | 
10 | struct WcharTestRec;
11 | 
12 | class WcharTestHelpers {
13 | public:
14 |     virtual ~WcharTestHelpers() {}
15 | 
16 |     static WcharTestRec get_record();
17 | 
18 |     static std::wstring get_string();
19 | 
20 |     static bool check_string(const std::wstring & str);
21 | 
22 |     static bool check_record(const WcharTestRec & rec);
23 | };
24 | 
25 | }  // namespace testsuite
26 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/cpp/wchar_test_rec.hpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from wchar_test.djinni
 3 | 
 4 | #pragma once
 5 | 
 6 | #include <string>
 7 | #include <utility>
 8 | 
 9 | namespace testsuite {
10 | 
11 | struct WcharTestRec final {
12 |     std::wstring s;
13 | 
14 |     WcharTestRec(std::wstring s_)
15 |     : s(std::move(s_))
16 |     {}
17 | };
18 | 
19 | }  // namespace testsuite
20 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/java/com/dropbox/djinni/test/AccessFlags.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum_flags.djinni
 3 | 
 4 | package com.dropbox.djinni.test;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | public enum AccessFlags {
10 |     OWNER_READ,
11 |     OWNER_WRITE,
12 |     OWNER_EXECUTE,
13 |     GROUP_READ,
14 |     GROUP_WRITE,
15 |     GROUP_EXECUTE,
16 |     SYSTEM_READ,
17 |     SYSTEM_WRITE,
18 |     SYSTEM_EXECUTE,
19 |     ;
20 | }
21 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/java/com/dropbox/djinni/test/Color.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum.djinni
 3 | 
 4 | package com.dropbox.djinni.test;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | public enum Color {
10 |     RED,
11 |     ORANGE,
12 |     YELLOW,
13 |     GREEN,
14 |     BLUE,
15 |     /**
16 |      * "It is customary to list indigo as a color lying between blue and violet, but it has
17 |      * never seemed to me that indigo is worth the dignity of being considered a separate
18 |      * color. To my eyes it seems merely deep blue." --Isaac Asimov
19 |      */
20 |     INDIGO,
21 |     VIOLET,
22 |     ;
23 | }
24 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/java/com/dropbox/djinni/test/ConstantEnum.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | package com.dropbox.djinni.test;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | /** enum for use in constants */
10 | public enum ConstantEnum {
11 |     SOME_VALUE,
12 |     SOME_OTHER_VALUE,
13 |     ;
14 | }
15 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/java/com/dropbox/djinni/test/EmptyFlags.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum_flags.djinni
 3 | 
 4 | package com.dropbox.djinni.test;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | public enum EmptyFlags {
10 |     ;
11 | }
12 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/java/com/dropbox/djinni/test/EmptyRecord.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | package com.dropbox.djinni.test;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | /**
10 |  * Empty record
11 |  * (Second line of multi-line documentation.
12 |  *   Indented third line of multi-line documentation.)
13 |  */
14 | public class EmptyRecord {
15 | 
16 | 
17 |     public EmptyRecord(
18 |             ) {
19 |     }
20 | 
21 |     @Override
22 |     public String toString() {
23 |         return "EmptyRecord{" +
24 |         "}";
25 |     }
26 | 
27 | }
28 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/java/com/dropbox/djinni/test/ExternInterface2.java:
--------------------------------------------------------------------------------
1 | // AUTOGENERATED FILE - DO NOT MODIFY!
2 | // This file generated by Djinni from yaml-test.djinni
3 | 
4 | package com.dropbox.djinni.test;
5 | 
6 | public interface ExternInterface2 {
7 |     public ExternRecordWithDerivings foo(com.dropbox.djinni.test.TestHelpers i);
8 | }
9 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/java/com/dropbox/djinni/test/FirstListener.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | package com.dropbox.djinni.test;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | /** Used for ObjC multiple inheritance tests */
10 | public interface FirstListener {
11 |     public void first();
12 | }
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/java/com/dropbox/djinni/test/JavaOnlyListener.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from single_language_interfaces.djinni
 3 | 
 4 | package com.dropbox.djinni.test;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | public interface JavaOnlyListener {
10 | }
11 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/java/com/dropbox/djinni/test/ObjcOnlyListener.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from single_language_interfaces.djinni
 3 | 
 4 | package com.dropbox.djinni.test;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | public interface ObjcOnlyListener {
10 | }
11 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/java/com/dropbox/djinni/test/SecondListener.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | package com.dropbox.djinni.test;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | /** Used for ObjC multiple inheritance tests */
10 | public interface SecondListener {
11 |     public void second();
12 | }
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/java/com/dropbox/djinni/test/WcharTestRec.java:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from wchar_test.djinni
 3 | 
 4 | package com.dropbox.djinni.test;
 5 | 
 6 | import javax.annotation.CheckForNull;
 7 | import javax.annotation.Nonnull;
 8 | 
 9 | public class WcharTestRec {
10 | 
11 | 
12 |     /*package*/ final String mS;
13 | 
14 |     public WcharTestRec(
15 |             @Nonnull String s) {
16 |         this.mS = s;
17 |     }
18 | 
19 |     @Nonnull
20 |     public String getS() {
21 |         return mS;
22 |     }
23 | 
24 |     @Override
25 |     public String toString() {
26 |         return "WcharTestRec{" +
27 |                 "mS=" + mS +
28 |         "}";
29 |     }
30 | 
31 | }
32 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/jni/NativeFirstListener.cpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | #include "NativeFirstListener.hpp"  // my header
 5 | 
 6 | namespace djinni_generated {
 7 | 
 8 | NativeFirstListener::NativeFirstListener() : ::djinni::JniInterface<::testsuite::FirstListener, NativeFirstListener>() {}
 9 | 
10 | NativeFirstListener::~NativeFirstListener() = default;
11 | 
12 | 
13 | }  // namespace djinni_generated
14 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/jni/NativeJavaOnlyListener.cpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from single_language_interfaces.djinni
 3 | 
 4 | #include "NativeJavaOnlyListener.hpp"  // my header
 5 | 
 6 | namespace djinni_generated {
 7 | 
 8 | NativeJavaOnlyListener::NativeJavaOnlyListener() : ::djinni::JniInterface<::testsuite::JavaOnlyListener, NativeJavaOnlyListener>() {}
 9 | 
10 | NativeJavaOnlyListener::~NativeJavaOnlyListener() = default;
11 | 
12 | NativeJavaOnlyListener::JavaProxy::JavaProxy(JniType j) : Handle(::djinni::jniGetThreadEnv(), j) { }
13 | 
14 | NativeJavaOnlyListener::JavaProxy::~JavaProxy() = default;
15 | 
16 | 
17 | }  // namespace djinni_generated
18 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/jni/NativeObjcOnlyListener.cpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from single_language_interfaces.djinni
 3 | 
 4 | #include "NativeObjcOnlyListener.hpp"  // my header
 5 | 
 6 | namespace djinni_generated {
 7 | 
 8 | NativeObjcOnlyListener::NativeObjcOnlyListener() : ::djinni::JniInterface<::testsuite::ObjcOnlyListener, NativeObjcOnlyListener>() {}
 9 | 
10 | NativeObjcOnlyListener::~NativeObjcOnlyListener() = default;
11 | 
12 | 
13 | }  // namespace djinni_generated
14 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/jni/NativeSecondListener.cpp:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | #include "NativeSecondListener.hpp"  // my header
 5 | 
 6 | namespace djinni_generated {
 7 | 
 8 | NativeSecondListener::NativeSecondListener() : ::djinni::JniInterface<::testsuite::SecondListener, NativeSecondListener>() {}
 9 | 
10 | NativeSecondListener::~NativeSecondListener() = default;
11 | 
12 | 
13 | }  // namespace djinni_generated
14 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBAccessFlags+Private.h:
--------------------------------------------------------------------------------
1 | // AUTOGENERATED FILE - DO NOT MODIFY!
2 | // This file generated by Djinni from enum_flags.djinni
3 | 
4 | #include "access_flags.hpp"
5 | #import "DJIMarshal+Private.h"
6 | 
7 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBAssortedPrimitives+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from primtypes.djinni
 3 | 
 4 | #import "DBAssortedPrimitives.h"
 5 | #include "assorted_primitives.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBAssortedPrimitives;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct AssortedPrimitives
14 | {
15 |     using CppType = ::testsuite::AssortedPrimitives;
16 |     using ObjcType = DBAssortedPrimitives*;
17 | 
18 |     using Boxed = AssortedPrimitives;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBClientReturnedRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from client_interface.djinni
 3 | 
 4 | #import "DBClientReturnedRecord.h"
 5 | #include "client_returned_record.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBClientReturnedRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ClientReturnedRecord
14 | {
15 |     using CppType = ::testsuite::ClientReturnedRecord;
16 |     using ObjcType = DBClientReturnedRecord*;
17 | 
18 |     using Boxed = ClientReturnedRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBColor+Private.h:
--------------------------------------------------------------------------------
1 | // AUTOGENERATED FILE - DO NOT MODIFY!
2 | // This file generated by Djinni from enum.djinni
3 | 
4 | #include "color.hpp"
5 | #import "DJIMarshal+Private.h"
6 | 
7 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBColor.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | typedef NS_ENUM(NSInteger, DBColor)
 7 | {
 8 |     DBColorRed,
 9 |     DBColorOrange,
10 |     DBColorYellow,
11 |     DBColorGreen,
12 |     DBColorBlue,
13 |     /**
14 |      * "It is customary to list indigo as a color lying between blue and violet, but it has
15 |      * never seemed to me that indigo is worth the dignity of being considered a separate
16 |      * color. To my eyes it seems merely deep blue." --Isaac Asimov
17 |      */
18 |     DBColorIndigo,
19 |     DBColorViolet,
20 | };
21 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConflict.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | 
 7 | /**
 8 |  * Test for conflict of method name with an interface name.
 9 |  * See the comments about scopeSymbols in CppMarshal.scala for more info.
10 |  */
11 | @interface DBConflict : NSObject
12 | 
13 | @end
14 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConflictUser.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | @class DBConflict;
 6 | 
 7 | 
 8 | @interface DBConflictUser : NSObject
 9 | 
10 | - (nullable DBConflict *)Conflict;
11 | 
12 | - (BOOL)conflictArg:(nonnull NSSet<DBConflict *> *)cs;
13 | 
14 | @end
15 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstantEnum+Private.h:
--------------------------------------------------------------------------------
1 | // AUTOGENERATED FILE - DO NOT MODIFY!
2 | // This file generated by Djinni from constant_enum.djinni
3 | 
4 | #include "constant_enum.hpp"
5 | #import "DJIMarshal+Private.h"
6 | 
7 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstantEnum.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | /** enum for use in constants */
 7 | typedef NS_ENUM(NSInteger, DBConstantEnum)
 8 | {
 9 |     DBConstantEnumSomeValue,
10 |     DBConstantEnumSomeOtherValue,
11 | };
12 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstantInterfaceWithEnum.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | #import "DBConstantEnum.h"
 5 | #import <Foundation/Foundation.h>
 6 | 
 7 | 
 8 | /** Interface containing enum constant */
 9 | @interface DBConstantInterfaceWithEnum : NSObject
10 | 
11 | + (DBConstantEnum)constEnum;
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstantInterfaceWithEnum.mm:
--------------------------------------------------------------------------------
1 | // AUTOGENERATED FILE - DO NOT MODIFY!
2 | // This file generated by Djinni from constant_enum.djinni
3 | 
4 | #import "DBConstantInterfaceWithEnum.h"
5 | 
6 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstantRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constants.djinni
 3 | 
 4 | #import "DBConstantRecord.h"
 5 | #include "constant_record.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBConstantRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ConstantRecord
14 | {
15 |     using CppType = ::testsuite::ConstantRecord;
16 |     using ObjcType = DBConstantRecord*;
17 | 
18 |     using Boxed = ConstantRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstantRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constants.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | /** Record for use in constants */
 7 | @interface DBConstantRecord : NSObject
 8 | - (nonnull instancetype)initWithSomeInteger:(int32_t)someInteger
 9 |                                  someString:(nonnull NSString *)someString;
10 | + (nonnull instancetype)constantRecordWithSomeInteger:(int32_t)someInteger
11 |                                            someString:(nonnull NSString *)someString;
12 | 
13 | @property (nonatomic, readonly) int32_t someInteger;
14 | 
15 | @property (nonatomic, readonly, nonnull) NSString * someString;
16 | 
17 | @end
18 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstantWithEnum+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | #import "DBConstantWithEnum.h"
 5 | #include "constant_with_enum.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBConstantWithEnum;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ConstantWithEnum
14 | {
15 |     using CppType = ::testsuite::ConstantWithEnum;
16 |     using ObjcType = DBConstantWithEnum*;
17 | 
18 |     using Boxed = ConstantWithEnum;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstantWithEnum+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | #import "DBConstantWithEnum+Private.h"
 5 | #import "DBConstantEnum+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto ConstantWithEnum::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     (void)obj; // Suppress warnings in relase builds for empty records
14 |     return {};
15 | }
16 | 
17 | auto ConstantWithEnum::fromCpp(const CppType& cpp) -> ObjcType
18 | {
19 |     (void)cpp; // Suppress warnings in relase builds for empty records
20 |     return [[DBConstantWithEnum alloc] init];
21 | }
22 | 
23 | }  // namespace djinni_generated
24 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstantWithEnum.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | #import "DBConstantEnum.h"
 5 | #import <Foundation/Foundation.h>
 6 | 
 7 | /** Record containing enum constant */
 8 | @interface DBConstantWithEnum : NSObject
 9 | - (nonnull instancetype)init;
10 | + (nonnull instancetype)constantWithEnum;
11 | 
12 | + (DBConstantEnum)constEnum;
13 | @end
14 | 
15 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstantWithEnum.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constant_enum.djinni
 3 | 
 4 | #import "DBConstantWithEnum.h"
 5 | 
 6 | 
 7 | @implementation DBConstantWithEnum
 8 | 
 9 | - (nonnull instancetype)init
10 | {
11 |     if (self = [super init]) {
12 |     }
13 |     return self;
14 | }
15 | 
16 | + (nonnull instancetype)constantWithEnum
17 | {
18 |     return [(DBConstantWithEnum*)[self alloc] init];
19 | }
20 | 
21 | + (DBConstantEnum)constEnum
22 | {
23 |     static DBConstantEnum const s_constEnum = DBConstantEnumSomeValue;
24 |     return s_constEnum;
25 | }
26 | 
27 | - (NSString *)description
28 | {
29 |     return [NSString stringWithFormat:@"<%@ %p>", self.class, (void *)self];
30 | }
31 | 
32 | @end
33 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstants+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constants.djinni
 3 | 
 4 | #import "DBConstants.h"
 5 | #include "constants.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBConstants;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct Constants
14 | {
15 |     using CppType = ::testsuite::Constants;
16 |     using ObjcType = DBConstants*;
17 | 
18 |     using Boxed = Constants;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstants+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constants.djinni
 3 | 
 4 | #import "DBConstants+Private.h"
 5 | #import "DBConstantRecord+Private.h"
 6 | #import "DJIMarshal+Private.h"
 7 | #include <cassert>
 8 | 
 9 | namespace djinni_generated {
10 | 
11 | auto Constants::toCpp(ObjcType obj) -> CppType
12 | {
13 |     assert(obj);
14 |     (void)obj; // Suppress warnings in relase builds for empty records
15 |     return {};
16 | }
17 | 
18 | auto Constants::fromCpp(const CppType& cpp) -> ObjcType
19 | {
20 |     (void)cpp; // Suppress warnings in relase builds for empty records
21 |     return [[DBConstants alloc] init];
22 | }
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBConstantsInterface.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from constants.djinni
 3 | 
 4 | #import "DBConstantsInterface.h"
 5 | 
 6 | 
 7 | BOOL const DBConstantsInterfaceBoolConstant = YES;
 8 | 
 9 | int8_t const DBConstantsInterfaceI8Constant = 1;
10 | 
11 | int16_t const DBConstantsInterfaceI16Constant = 2;
12 | 
13 | int32_t const DBConstantsInterfaceI32Constant = 3;
14 | 
15 | int64_t const DBConstantsInterfaceI64Constant = 4;
16 | 
17 | float const DBConstantsInterfaceF32Constant = 5.0f;
18 | 
19 | double const DBConstantsInterfaceF64Constant = 5.0;
20 | 
21 | NSString * __nonnull const DBConstantsInterfaceStringConstant = @"string-constant";
22 | 
23 | NSString * __nullable const DBConstantsInterfaceOptStringConstant = @"string-constant";
24 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBCppException.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from exception.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | @class DBCppException;
 6 | 
 7 | 
 8 | @interface DBCppException : NSObject
 9 | 
10 | - (int32_t)throwAnException;
11 | 
12 | + (nullable DBCppException *)get;
13 | 
14 | @end
15 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBDateRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from date.djinni
 3 | 
 4 | #import "DBDateRecord.h"
 5 | #include "date_record.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBDateRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct DateRecord
14 | {
15 |     using CppType = ::testsuite::DateRecord;
16 |     using ObjcType = DBDateRecord*;
17 | 
18 |     using Boxed = DateRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBDateRecord+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from date.djinni
 3 | 
 4 | #import "DBDateRecord+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto DateRecord::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::Date::toCpp(obj.createdAt)};
14 | }
15 | 
16 | auto DateRecord::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBDateRecord alloc] initWithCreatedAt:(::djinni::Date::fromCpp(cpp.created_at))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBDateRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from date.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBDateRecord : NSObject
 7 | - (nonnull instancetype)initWithCreatedAt:(nonnull NSDate *)createdAt;
 8 | + (nonnull instancetype)dateRecordWithCreatedAt:(nonnull NSDate *)createdAt;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSDate * createdAt;
11 | 
12 | - (NSComparisonResult)compare:(nonnull DBDateRecord *)other;
13 | 
14 | @end
15 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBEmptyFlags+Private.h:
--------------------------------------------------------------------------------
1 | // AUTOGENERATED FILE - DO NOT MODIFY!
2 | // This file generated by Djinni from enum_flags.djinni
3 | 
4 | #include "empty_flags.hpp"
5 | #import "DJIMarshal+Private.h"
6 | 
7 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBEmptyFlags.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum_flags.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | typedef NS_OPTIONS(NSUInteger, DBEmptyFlags)
 7 | {
 8 |     DBEmptyFlagsNone = 0,
 9 |     DBEmptyFlagsAll = 0,
10 | };
11 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBEmptyRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | #import "DBEmptyRecord.h"
 5 | #include "empty_record.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBEmptyRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct EmptyRecord
14 | {
15 |     using CppType = ::testsuite::EmptyRecord;
16 |     using ObjcType = DBEmptyRecord*;
17 | 
18 |     using Boxed = EmptyRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBEmptyRecord+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | #import "DBEmptyRecord+Private.h"
 5 | #include <cassert>
 6 | 
 7 | namespace djinni_generated {
 8 | 
 9 | auto EmptyRecord::toCpp(ObjcType obj) -> CppType
10 | {
11 |     assert(obj);
12 |     (void)obj; // Suppress warnings in relase builds for empty records
13 |     return {};
14 | }
15 | 
16 | auto EmptyRecord::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     (void)cpp; // Suppress warnings in relase builds for empty records
19 |     return [[DBEmptyRecord alloc] init];
20 | }
21 | 
22 | }  // namespace djinni_generated
23 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBEmptyRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | /**
 7 |  * Empty record
 8 |  * (Second line of multi-line documentation.
 9 |  *   Indented third line of multi-line documentation.)
10 |  */
11 | @interface DBEmptyRecord : NSObject
12 | - (nonnull instancetype)init;
13 | + (nonnull instancetype)emptyRecord;
14 | 
15 | @end
16 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBEmptyRecord.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | #import "DBEmptyRecord.h"
 5 | 
 6 | 
 7 | @implementation DBEmptyRecord
 8 | 
 9 | - (nonnull instancetype)init
10 | {
11 |     if (self = [super init]) {
12 |     }
13 |     return self;
14 | }
15 | 
16 | + (nonnull instancetype)emptyRecord
17 | {
18 |     return [(DBEmptyRecord*)[self alloc] init];
19 | }
20 | 
21 | - (NSString *)description
22 | {
23 |     return [NSString stringWithFormat:@"<%@ %p>", self.class, (void *)self];
24 | }
25 | 
26 | @end
27 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBEnumUsageInterface.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum.djinni
 3 | 
 4 | #import "DBColor.h"
 5 | #import <Foundation/Foundation.h>
 6 | 
 7 | 
 8 | @protocol DBEnumUsageInterface
 9 | 
10 | - (DBColor)e:(DBColor)e;
11 | 
12 | - (nullable NSNumber *)o:(nullable NSNumber *)o;
13 | 
14 | - (nonnull NSArray<NSNumber *> *)l:(nonnull NSArray<NSNumber *> *)l;
15 | 
16 | - (nonnull NSSet<NSNumber *> *)s:(nonnull NSSet<NSNumber *> *)s;
17 | 
18 | - (nonnull NSDictionary<NSNumber *, NSNumber *> *)m:(nonnull NSDictionary<NSNumber *, NSNumber *> *)m;
19 | 
20 | @end
21 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBEnumUsageRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum.djinni
 3 | 
 4 | #import "DBEnumUsageRecord.h"
 5 | #include "enum_usage_record.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBEnumUsageRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct EnumUsageRecord
14 | {
15 |     using CppType = ::testsuite::EnumUsageRecord;
16 |     using ObjcType = DBEnumUsageRecord*;
17 | 
18 |     using Boxed = EnumUsageRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBExtendedRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #import "DBExtendedRecord.h"
 5 | #include "../../handwritten-src/cpp/extended_record.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBExtendedRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ExtendedRecord
14 | {
15 |     using CppType = ::testsuite::ExtendedRecord;
16 |     using ObjcType = DBExtendedRecord*;
17 | 
18 |     using Boxed = ExtendedRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBExtendedRecord+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #import "DBExtendedRecord+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto ExtendedRecord::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::Bool::toCpp(obj.foo)};
14 | }
15 | 
16 | auto ExtendedRecord::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBExtendedRecord alloc] initWithFoo:(::djinni::Bool::fromCpp(cpp.foo))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBExtendedRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #import "DBExtendedRecord.h"
 5 | #import <Foundation/Foundation.h>
 6 | 
 7 | /** Extended record */
 8 | @interface DBExtendedRecord : NSObject
 9 | - (nonnull instancetype)initWithFoo:(BOOL)foo;
10 | + (nonnull instancetype)extendedRecordWithFoo:(BOOL)foo;
11 | 
12 | + (DBExtendedRecord * __nonnull)extendedRecordConst;
13 | @property (nonatomic, readonly) BOOL foo;
14 | 
15 | @end
16 | 
17 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBExternInterface1.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from yaml-test.djinni
 3 | 
 4 | #import "DBClientInterface.h"
 5 | #import "DBClientReturnedRecord.h"
 6 | #import <Foundation/Foundation.h>
 7 | 
 8 | 
 9 | @interface DBExternInterface1 : NSObject
10 | 
11 | - (nonnull DBClientReturnedRecord *)foo:(nullable id<DBClientInterface>)i;
12 | 
13 | @end
14 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBExternInterface2.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from yaml-test.djinni
 3 | 
 4 | #import "DBExternRecordWithDerivings.h"
 5 | #import "DBTestHelpers.h"
 6 | #import <Foundation/Foundation.h>
 7 | 
 8 | 
 9 | @protocol DBExternInterface2
10 | 
11 | - (nonnull DBExternRecordWithDerivings *)foo:(nullable DBTestHelpers *)i;
12 | 
13 | @end
14 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBExternRecordWithDerivings+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from yaml-test.djinni
 3 | 
 4 | #import "DBExternRecordWithDerivings.h"
 5 | #include "extern_record_with_derivings.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBExternRecordWithDerivings;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ExternRecordWithDerivings
14 | {
15 |     using CppType = ::ExternRecordWithDerivings;
16 |     using ObjcType = DBExternRecordWithDerivings*;
17 | 
18 |     using Boxed = ExternRecordWithDerivings;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBFirstListener.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | 
 7 | /** Used for ObjC multiple inheritance tests */
 8 | @protocol DBFirstListener
 9 | 
10 | - (void)first;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBFlagRoundtrip.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum_flags.djinni
 3 | 
 4 | #import "DBAccessFlags.h"
 5 | #import "DBEmptyFlags.h"
 6 | #import <Foundation/Foundation.h>
 7 | 
 8 | 
 9 | @interface DBFlagRoundtrip : NSObject
10 | 
11 | + (DBAccessFlags)roundtripAccess:(DBAccessFlags)flag;
12 | 
13 | + (DBEmptyFlags)roundtripEmpty:(DBEmptyFlags)flag;
14 | 
15 | + (nullable NSNumber *)roundtripAccessBoxed:(nullable NSNumber *)flag;
16 | 
17 | + (nullable NSNumber *)roundtripEmptyBoxed:(nullable NSNumber *)flag;
18 | 
19 | @end
20 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBInterfaceUsingExtendedRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #import "DBExtendedRecord.h"
 5 | #import "DBRecordUsingExtendedRecord.h"
 6 | #import <Foundation/Foundation.h>
 7 | 
 8 | 
 9 | @interface DBInterfaceUsingExtendedRecord : NSObject
10 | 
11 | - (nonnull DBExtendedRecord *)meth:(nonnull DBExtendedRecord *)er;
12 | 
13 | + (DBRecordUsingExtendedRecord * __nonnull)cr;
14 | @end
15 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBInterfaceUsingExtendedRecord.mm:
--------------------------------------------------------------------------------
1 | // AUTOGENERATED FILE - DO NOT MODIFY!
2 | // This file generated by Djinni from extended_record.djinni
3 | 
4 | #import "DBInterfaceUsingExtendedRecord.h"
5 | 
6 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBJavaOnlyListener.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from single_language_interfaces.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | 
 7 | @interface DBJavaOnlyListener : NSObject
 8 | 
 9 | @end
10 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBListenerCaller.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | @class DBListenerCaller;
 6 | @protocol DBFirstListener;
 7 | @protocol DBSecondListener;
 8 | 
 9 | 
10 | /**
11 |  * Tester for the ability to call two interfaces which might be
12 |  * implemented on the same object.  That's not relevant in all
13 |  * languages, due to the details of multiple inheritance and object
14 |  * comparison.
15 |  */
16 | @interface DBListenerCaller : NSObject
17 | 
18 | + (nullable DBListenerCaller *)init:(nullable id<DBFirstListener>)firstL
19 |                             secondL:(nullable id<DBSecondListener>)secondL;
20 | 
21 | - (void)callFirst;
22 | 
23 | - (void)callSecond;
24 | 
25 | @end
26 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBMapDateRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from date.djinni
 3 | 
 4 | #import "DBMapDateRecord.h"
 5 | #include "map_date_record.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBMapDateRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct MapDateRecord
14 | {
15 |     using CppType = ::testsuite::MapDateRecord;
16 |     using ObjcType = DBMapDateRecord*;
17 | 
18 |     using Boxed = MapDateRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBMapDateRecord+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from date.djinni
 3 | 
 4 | #import "DBMapDateRecord+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto MapDateRecord::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::Map<::djinni::String, ::djinni::Date>::toCpp(obj.datesById)};
14 | }
15 | 
16 | auto MapDateRecord::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBMapDateRecord alloc] initWithDatesById:(::djinni::Map<::djinni::String, ::djinni::Date>::fromCpp(cpp.dates_by_id))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBMapDateRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from date.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBMapDateRecord : NSObject
 7 | - (nonnull instancetype)initWithDatesById:(nonnull NSDictionary<NSString *, NSDate *> *)datesById;
 8 | + (nonnull instancetype)mapDateRecordWithDatesById:(nonnull NSDictionary<NSString *, NSDate *> *)datesById;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSDictionary<NSString *, NSDate *> * datesById;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBMapListRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from map.djinni
 3 | 
 4 | #import "DBMapListRecord.h"
 5 | #include "map_list_record.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBMapListRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct MapListRecord
14 | {
15 |     using CppType = ::testsuite::MapListRecord;
16 |     using ObjcType = DBMapListRecord*;
17 | 
18 |     using Boxed = MapListRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBMapListRecord+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from map.djinni
 3 | 
 4 | #import "DBMapListRecord+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto MapListRecord::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::List<::djinni::Map<::djinni::String, ::djinni::I64>>::toCpp(obj.mapList)};
14 | }
15 | 
16 | auto MapListRecord::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBMapListRecord alloc] initWithMapList:(::djinni::List<::djinni::Map<::djinni::String, ::djinni::I64>>::fromCpp(cpp.map_list))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBMapListRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from map.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBMapListRecord : NSObject
 7 | - (nonnull instancetype)initWithMapList:(nonnull NSArray<NSDictionary<NSString *, NSNumber *> *> *)mapList;
 8 | + (nonnull instancetype)mapListRecordWithMapList:(nonnull NSArray<NSDictionary<NSString *, NSNumber *> *> *)mapList;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSArray<NSDictionary<NSString *, NSNumber *> *> * mapList;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBMapRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from map.djinni
 3 | 
 4 | #import "DBMapRecord.h"
 5 | #include "map_record.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBMapRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct MapRecord
14 | {
15 |     using CppType = ::testsuite::MapRecord;
16 |     using ObjcType = DBMapRecord*;
17 | 
18 |     using Boxed = MapRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBMapRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from map.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBMapRecord : NSObject
 7 | - (nonnull instancetype)initWithMap:(nonnull NSDictionary<NSString *, NSNumber *> *)map
 8 |                                imap:(nonnull NSDictionary<NSNumber *, NSNumber *> *)imap;
 9 | + (nonnull instancetype)mapRecordWithMap:(nonnull NSDictionary<NSString *, NSNumber *> *)map
10 |                                     imap:(nonnull NSDictionary<NSNumber *, NSNumber *> *)imap;
11 | 
12 | @property (nonatomic, readonly, nonnull) NSDictionary<NSString *, NSNumber *> * map;
13 | 
14 | @property (nonatomic, readonly, nonnull) NSDictionary<NSNumber *, NSNumber *> * imap;
15 | 
16 | @end
17 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBNestedCollection+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from nested_collection.djinni
 3 | 
 4 | #import "DBNestedCollection.h"
 5 | #include "nested_collection.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBNestedCollection;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct NestedCollection
14 | {
15 |     using CppType = ::testsuite::NestedCollection;
16 |     using ObjcType = DBNestedCollection*;
17 | 
18 |     using Boxed = NestedCollection;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBNestedCollection+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from nested_collection.djinni
 3 | 
 4 | #import "DBNestedCollection+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto NestedCollection::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::List<::djinni::Set<::djinni::String>>::toCpp(obj.setList)};
14 | }
15 | 
16 | auto NestedCollection::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBNestedCollection alloc] initWithSetList:(::djinni::List<::djinni::Set<::djinni::String>>::fromCpp(cpp.set_list))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBNestedCollection.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from nested_collection.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBNestedCollection : NSObject
 7 | - (nonnull instancetype)initWithSetList:(nonnull NSArray<NSSet<NSString *> *> *)setList;
 8 | + (nonnull instancetype)nestedCollectionWithSetList:(nonnull NSArray<NSSet<NSString *> *> *)setList;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSArray<NSSet<NSString *> *> * setList;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBNestedCollection.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from nested_collection.djinni
 3 | 
 4 | #import "DBNestedCollection.h"
 5 | 
 6 | 
 7 | @implementation DBNestedCollection
 8 | 
 9 | - (nonnull instancetype)initWithSetList:(nonnull NSArray<NSSet<NSString *> *> *)setList
10 | {
11 |     if (self = [super init]) {
12 |         _setList = [setList copy];
13 |     }
14 |     return self;
15 | }
16 | 
17 | + (nonnull instancetype)nestedCollectionWithSetList:(nonnull NSArray<NSSet<NSString *> *> *)setList
18 | {
19 |     return [(DBNestedCollection*)[self alloc] initWithSetList:setList];
20 | }
21 | 
22 | - (NSString *)description
23 | {
24 |     return [NSString stringWithFormat:@"<%@ %p setList:%@>", self.class, (void *)self, self.setList];
25 | }
26 | 
27 | @end
28 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBObjcOnlyListener.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from single_language_interfaces.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | 
 7 | @protocol DBObjcOnlyListener
 8 | 
 9 | @end
10 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableList+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableList.h"
 5 | #include "parcelable_list.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBParcelableList;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ParcelableList
14 | {
15 |     using CppType = ::testsuite::ParcelableList;
16 |     using ObjcType = DBParcelableList*;
17 | 
18 |     using Boxed = ParcelableList;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableList+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableList+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto ParcelableList::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::List<::djinni::String>::toCpp(obj.l)};
14 | }
15 | 
16 | auto ParcelableList::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBParcelableList alloc] initWithL:(::djinni::List<::djinni::String>::fromCpp(cpp.l))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableList.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBParcelableList : NSObject
 7 | - (nonnull instancetype)initWithL:(nonnull NSArray<NSString *> *)l;
 8 | + (nonnull instancetype)parcelableListWithL:(nonnull NSArray<NSString *> *)l;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSArray<NSString *> * l;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableList.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableList.h"
 5 | 
 6 | 
 7 | @implementation DBParcelableList
 8 | 
 9 | - (nonnull instancetype)initWithL:(nonnull NSArray<NSString *> *)l
10 | {
11 |     if (self = [super init]) {
12 |         _l = [l copy];
13 |     }
14 |     return self;
15 | }
16 | 
17 | + (nonnull instancetype)parcelableListWithL:(nonnull NSArray<NSString *> *)l
18 | {
19 |     return [(DBParcelableList*)[self alloc] initWithL:l];
20 | }
21 | 
22 | - (NSString *)description
23 | {
24 |     return [NSString stringWithFormat:@"<%@ %p l:%@>", self.class, (void *)self, self.l];
25 | }
26 | 
27 | @end
28 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableListMapSet+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableListMapSet.h"
 5 | #include "parcelable_list_map_set.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBParcelableListMapSet;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ParcelableListMapSet
14 | {
15 |     using CppType = ::testsuite::ParcelableListMapSet;
16 |     using ObjcType = DBParcelableListMapSet*;
17 | 
18 |     using Boxed = ParcelableListMapSet;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableListMapSet.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBParcelableListMapSet : NSObject
 7 | - (nonnull instancetype)initWithListMapSet:(nonnull NSArray<NSDictionary<NSString *, NSSet<NSString *> *> *> *)listMapSet;
 8 | + (nonnull instancetype)parcelableListMapSetWithListMapSet:(nonnull NSArray<NSDictionary<NSString *, NSSet<NSString *> *> *> *)listMapSet;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSArray<NSDictionary<NSString *, NSSet<NSString *> *> *> * listMapSet;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableListSet+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableListSet.h"
 5 | #include "parcelable_list_set.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBParcelableListSet;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ParcelableListSet
14 | {
15 |     using CppType = ::testsuite::ParcelableListSet;
16 |     using ObjcType = DBParcelableListSet*;
17 | 
18 |     using Boxed = ParcelableListSet;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableListSet+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableListSet+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto ParcelableListSet::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::List<::djinni::Set<::djinni::String>>::toCpp(obj.listSet)};
14 | }
15 | 
16 | auto ParcelableListSet::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBParcelableListSet alloc] initWithListSet:(::djinni::List<::djinni::Set<::djinni::String>>::fromCpp(cpp.list_set))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableListSet.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBParcelableListSet : NSObject
 7 | - (nonnull instancetype)initWithListSet:(nonnull NSArray<NSSet<NSString *> *> *)listSet;
 8 | + (nonnull instancetype)parcelableListSetWithListSet:(nonnull NSArray<NSSet<NSString *> *> *)listSet;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSArray<NSSet<NSString *> *> * listSet;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableListSet.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableListSet.h"
 5 | 
 6 | 
 7 | @implementation DBParcelableListSet
 8 | 
 9 | - (nonnull instancetype)initWithListSet:(nonnull NSArray<NSSet<NSString *> *> *)listSet
10 | {
11 |     if (self = [super init]) {
12 |         _listSet = [listSet copy];
13 |     }
14 |     return self;
15 | }
16 | 
17 | + (nonnull instancetype)parcelableListSetWithListSet:(nonnull NSArray<NSSet<NSString *> *> *)listSet
18 | {
19 |     return [(DBParcelableListSet*)[self alloc] initWithListSet:listSet];
20 | }
21 | 
22 | - (NSString *)description
23 | {
24 |     return [NSString stringWithFormat:@"<%@ %p listSet:%@>", self.class, (void *)self, self.listSet];
25 | }
26 | 
27 | @end
28 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableMap+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableMap.h"
 5 | #include "parcelable_map.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBParcelableMap;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ParcelableMap
14 | {
15 |     using CppType = ::testsuite::ParcelableMap;
16 |     using ObjcType = DBParcelableMap*;
17 | 
18 |     using Boxed = ParcelableMap;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableMap+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableMap+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto ParcelableMap::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::Map<::djinni::String, ::djinni::String>::toCpp(obj.m)};
14 | }
15 | 
16 | auto ParcelableMap::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBParcelableMap alloc] initWithM:(::djinni::Map<::djinni::String, ::djinni::String>::fromCpp(cpp.m))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableMap.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBParcelableMap : NSObject
 7 | - (nonnull instancetype)initWithM:(nonnull NSDictionary<NSString *, NSString *> *)m;
 8 | + (nonnull instancetype)parcelableMapWithM:(nonnull NSDictionary<NSString *, NSString *> *)m;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSDictionary<NSString *, NSString *> * m;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableMap.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableMap.h"
 5 | 
 6 | 
 7 | @implementation DBParcelableMap
 8 | 
 9 | - (nonnull instancetype)initWithM:(nonnull NSDictionary<NSString *, NSString *> *)m
10 | {
11 |     if (self = [super init]) {
12 |         _m = [m copy];
13 |     }
14 |     return self;
15 | }
16 | 
17 | + (nonnull instancetype)parcelableMapWithM:(nonnull NSDictionary<NSString *, NSString *> *)m
18 | {
19 |     return [(DBParcelableMap*)[self alloc] initWithM:m];
20 | }
21 | 
22 | - (NSString *)description
23 | {
24 |     return [NSString stringWithFormat:@"<%@ %p m:%@>", self.class, (void *)self, self.m];
25 | }
26 | 
27 | @end
28 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableMapList+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableMapList.h"
 5 | #include "parcelable_map_list.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBParcelableMapList;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ParcelableMapList
14 | {
15 |     using CppType = ::testsuite::ParcelableMapList;
16 |     using ObjcType = DBParcelableMapList*;
17 | 
18 |     using Boxed = ParcelableMapList;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableMapList+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableMapList+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto ParcelableMapList::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::Map<::djinni::String, ::djinni::List<::djinni::String>>::toCpp(obj.mapSet)};
14 | }
15 | 
16 | auto ParcelableMapList::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBParcelableMapList alloc] initWithMapSet:(::djinni::Map<::djinni::String, ::djinni::List<::djinni::String>>::fromCpp(cpp.map_set))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableMapList.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBParcelableMapList : NSObject
 7 | - (nonnull instancetype)initWithMapSet:(nonnull NSDictionary<NSString *, NSArray<NSString *> *> *)mapSet;
 8 | + (nonnull instancetype)parcelableMapListWithMapSet:(nonnull NSDictionary<NSString *, NSArray<NSString *> *> *)mapSet;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSDictionary<NSString *, NSArray<NSString *> *> * mapSet;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableMapSet+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableMapSet.h"
 5 | #include "parcelable_map_set.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBParcelableMapSet;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ParcelableMapSet
14 | {
15 |     using CppType = ::testsuite::ParcelableMapSet;
16 |     using ObjcType = DBParcelableMapSet*;
17 | 
18 |     using Boxed = ParcelableMapSet;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableMapSet+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableMapSet+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto ParcelableMapSet::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::Map<::djinni::String, ::djinni::Set<::djinni::String>>::toCpp(obj.mapSet)};
14 | }
15 | 
16 | auto ParcelableMapSet::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBParcelableMapSet alloc] initWithMapSet:(::djinni::Map<::djinni::String, ::djinni::Set<::djinni::String>>::fromCpp(cpp.map_set))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableMapSet.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBParcelableMapSet : NSObject
 7 | - (nonnull instancetype)initWithMapSet:(nonnull NSDictionary<NSString *, NSSet<NSString *> *> *)mapSet;
 8 | + (nonnull instancetype)parcelableMapSetWithMapSet:(nonnull NSDictionary<NSString *, NSSet<NSString *> *> *)mapSet;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSDictionary<NSString *, NSSet<NSString *> *> * mapSet;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableOptionalList+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableOptionalList.h"
 5 | #include "parcelable_optional_list.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBParcelableOptionalList;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ParcelableOptionalList
14 | {
15 |     using CppType = ::testsuite::ParcelableOptionalList;
16 |     using ObjcType = DBParcelableOptionalList*;
17 | 
18 |     using Boxed = ParcelableOptionalList;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableOptionalList.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBParcelableOptionalList : NSObject
 7 | - (nonnull instancetype)initWithOptionalSet:(nullable NSArray<NSString *> *)optionalSet;
 8 | + (nonnull instancetype)parcelableOptionalListWithOptionalSet:(nullable NSArray<NSString *> *)optionalSet;
 9 | 
10 | @property (nonatomic, readonly, nullable) NSArray<NSString *> * optionalSet;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableOptionalMap+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableOptionalMap.h"
 5 | #include "parcelable_optional_map.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBParcelableOptionalMap;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ParcelableOptionalMap
14 | {
15 |     using CppType = ::testsuite::ParcelableOptionalMap;
16 |     using ObjcType = DBParcelableOptionalMap*;
17 | 
18 |     using Boxed = ParcelableOptionalMap;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableOptionalMap.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBParcelableOptionalMap : NSObject
 7 | - (nonnull instancetype)initWithOptionalSet:(nullable NSDictionary<NSString *, NSSet<NSString *> *> *)optionalSet;
 8 | + (nonnull instancetype)parcelableOptionalMapWithOptionalSet:(nullable NSDictionary<NSString *, NSSet<NSString *> *> *)optionalSet;
 9 | 
10 | @property (nonatomic, readonly, nullable) NSDictionary<NSString *, NSSet<NSString *> *> * optionalSet;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableOptionalSet+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableOptionalSet.h"
 5 | #include "parcelable_optional_set.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBParcelableOptionalSet;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ParcelableOptionalSet
14 | {
15 |     using CppType = ::testsuite::ParcelableOptionalSet;
16 |     using ObjcType = DBParcelableOptionalSet*;
17 | 
18 |     using Boxed = ParcelableOptionalSet;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableOptionalSet.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBParcelableOptionalSet : NSObject
 7 | - (nonnull instancetype)initWithOptionalSet:(nullable NSSet<NSString *> *)optionalSet;
 8 | + (nonnull instancetype)parcelableOptionalSetWithOptionalSet:(nullable NSSet<NSString *> *)optionalSet;
 9 | 
10 | @property (nonatomic, readonly, nullable) NSSet<NSString *> * optionalSet;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelablePrimitives+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelablePrimitives.h"
 5 | #include "parcelable_primitives.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBParcelablePrimitives;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ParcelablePrimitives
14 | {
15 |     using CppType = ::testsuite::ParcelablePrimitives;
16 |     using ObjcType = DBParcelablePrimitives*;
17 | 
18 |     using Boxed = ParcelablePrimitives;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableSet+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableSet.h"
 5 | #include "parcelable_set.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBParcelableSet;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct ParcelableSet
14 | {
15 |     using CppType = ::testsuite::ParcelableSet;
16 |     using ObjcType = DBParcelableSet*;
17 | 
18 |     using Boxed = ParcelableSet;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableSet+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableSet+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto ParcelableSet::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::Set<::djinni::String>::toCpp(obj.set)};
14 | }
15 | 
16 | auto ParcelableSet::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBParcelableSet alloc] initWithSet:(::djinni::Set<::djinni::String>::fromCpp(cpp.set))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableSet.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBParcelableSet : NSObject
 7 | - (nonnull instancetype)initWithSet:(nonnull NSSet<NSString *> *)set;
 8 | + (nonnull instancetype)parcelableSetWithSet:(nonnull NSSet<NSString *> *)set;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSSet<NSString *> * set;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBParcelableSet.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from parcelable.djinni
 3 | 
 4 | #import "DBParcelableSet.h"
 5 | 
 6 | 
 7 | @implementation DBParcelableSet
 8 | 
 9 | - (nonnull instancetype)initWithSet:(nonnull NSSet<NSString *> *)set
10 | {
11 |     if (self = [super init]) {
12 |         _set = [set copy];
13 |     }
14 |     return self;
15 | }
16 | 
17 | + (nonnull instancetype)parcelableSetWithSet:(nonnull NSSet<NSString *> *)set
18 | {
19 |     return [(DBParcelableSet*)[self alloc] initWithSet:set];
20 | }
21 | 
22 | - (NSString *)description
23 | {
24 |     return [NSString stringWithFormat:@"<%@ %p set:%@>", self.class, (void *)self, self.set];
25 | }
26 | 
27 | @end
28 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBPrimitiveList+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from primitive_list.djinni
 3 | 
 4 | #import "DBPrimitiveList.h"
 5 | #include "primitive_list.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBPrimitiveList;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct PrimitiveList
14 | {
15 |     using CppType = ::testsuite::PrimitiveList;
16 |     using ObjcType = DBPrimitiveList*;
17 | 
18 |     using Boxed = PrimitiveList;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBPrimitiveList+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from primitive_list.djinni
 3 | 
 4 | #import "DBPrimitiveList+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto PrimitiveList::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::List<::djinni::I64>::toCpp(obj.list)};
14 | }
15 | 
16 | auto PrimitiveList::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBPrimitiveList alloc] initWithList:(::djinni::List<::djinni::I64>::fromCpp(cpp.list))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBPrimitiveList.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from primitive_list.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBPrimitiveList : NSObject
 7 | - (nonnull instancetype)initWithList:(nonnull NSArray<NSNumber *> *)list;
 8 | + (nonnull instancetype)primitiveListWithList:(nonnull NSArray<NSNumber *> *)list;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSArray<NSNumber *> * list;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBPrimitiveList.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from primitive_list.djinni
 3 | 
 4 | #import "DBPrimitiveList.h"
 5 | 
 6 | 
 7 | @implementation DBPrimitiveList
 8 | 
 9 | - (nonnull instancetype)initWithList:(nonnull NSArray<NSNumber *> *)list
10 | {
11 |     if (self = [super init]) {
12 |         _list = [list copy];
13 |     }
14 |     return self;
15 | }
16 | 
17 | + (nonnull instancetype)primitiveListWithList:(nonnull NSArray<NSNumber *> *)list
18 | {
19 |     return [(DBPrimitiveList*)[self alloc] initWithList:list];
20 | }
21 | 
22 | - (NSString *)description
23 | {
24 |     return [NSString stringWithFormat:@"<%@ %p list:%@>", self.class, (void *)self, self.list];
25 | }
26 | 
27 | @end
28 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBRecordUsingExtendedRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #import "DBRecordUsingExtendedRecord.h"
 5 | #include "record_using_extended_record.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBRecordUsingExtendedRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct RecordUsingExtendedRecord
14 | {
15 |     using CppType = ::testsuite::RecordUsingExtendedRecord;
16 |     using ObjcType = DBRecordUsingExtendedRecord*;
17 | 
18 |     using Boxed = RecordUsingExtendedRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBRecordUsingExtendedRecord+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #import "DBRecordUsingExtendedRecord+Private.h"
 5 | #import "DBExtendedRecord+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto RecordUsingExtendedRecord::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni_generated::ExtendedRecord::toCpp(obj.er)};
14 | }
15 | 
16 | auto RecordUsingExtendedRecord::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBRecordUsingExtendedRecord alloc] initWithEr:(::djinni_generated::ExtendedRecord::fromCpp(cpp.er))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBRecordUsingExtendedRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from extended_record.djinni
 3 | 
 4 | #import "DBExtendedRecord.h"
 5 | #import "DBRecordUsingExtendedRecord.h"
 6 | #import <Foundation/Foundation.h>
 7 | 
 8 | @interface DBRecordUsingExtendedRecord : NSObject
 9 | - (nonnull instancetype)initWithEr:(nonnull DBExtendedRecord *)er;
10 | + (nonnull instancetype)recordUsingExtendedRecordWithEr:(nonnull DBExtendedRecord *)er;
11 | 
12 | + (DBRecordUsingExtendedRecord * __nonnull)cr;
13 | @property (nonatomic, readonly, nonnull) DBExtendedRecord * er;
14 | 
15 | @end
16 | 
17 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBRecordWithDerivings+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from derivings.djinni
 3 | 
 4 | #import "DBRecordWithDerivings.h"
 5 | #include "record_with_derivings.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBRecordWithDerivings;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct RecordWithDerivings
14 | {
15 |     using CppType = ::testsuite::RecordWithDerivings;
16 |     using ObjcType = DBRecordWithDerivings*;
17 | 
18 |     using Boxed = RecordWithDerivings;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBRecordWithDurationAndDerivings.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from duration.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBRecordWithDurationAndDerivings : NSObject
 7 | - (nonnull instancetype)initWithDt:(NSTimeInterval)dt;
 8 | + (nonnull instancetype)recordWithDurationAndDerivingsWithDt:(NSTimeInterval)dt;
 9 | 
10 | @property (nonatomic, readonly) NSTimeInterval dt;
11 | 
12 | - (NSComparisonResult)compare:(nonnull DBRecordWithDurationAndDerivings *)other;
13 | 
14 | @end
15 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBRecordWithFlags+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum_flags.djinni
 3 | 
 4 | #import "DBRecordWithFlags.h"
 5 | #include "record_with_flags.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBRecordWithFlags;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct RecordWithFlags
14 | {
15 |     using CppType = ::testsuite::RecordWithFlags;
16 |     using ObjcType = DBRecordWithFlags*;
17 | 
18 |     using Boxed = RecordWithFlags;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBRecordWithFlags+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum_flags.djinni
 3 | 
 4 | #import "DBRecordWithFlags+Private.h"
 5 | #import "DBAccessFlags+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto RecordWithFlags::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::Enum<::testsuite::access_flags, DBAccessFlags>::toCpp(obj.access)};
14 | }
15 | 
16 | auto RecordWithFlags::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBRecordWithFlags alloc] initWithAccess:(::djinni::Enum<::testsuite::access_flags, DBAccessFlags>::fromCpp(cpp.access))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBRecordWithFlags.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum_flags.djinni
 3 | 
 4 | #import "DBAccessFlags.h"
 5 | #import <Foundation/Foundation.h>
 6 | 
 7 | @interface DBRecordWithFlags : NSObject
 8 | - (nonnull instancetype)initWithAccess:(DBAccessFlags)access;
 9 | + (nonnull instancetype)recordWithFlagsWithAccess:(DBAccessFlags)access;
10 | 
11 | @property (nonatomic, readonly) DBAccessFlags access;
12 | 
13 | @end
14 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBRecordWithFlags.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from enum_flags.djinni
 3 | 
 4 | #import "DBRecordWithFlags.h"
 5 | 
 6 | 
 7 | @implementation DBRecordWithFlags
 8 | 
 9 | - (nonnull instancetype)initWithAccess:(DBAccessFlags)access
10 | {
11 |     if (self = [super init]) {
12 |         _access = access;
13 |     }
14 |     return self;
15 | }
16 | 
17 | + (nonnull instancetype)recordWithFlagsWithAccess:(DBAccessFlags)access
18 | {
19 |     return [(DBRecordWithFlags*)[self alloc] initWithAccess:access];
20 | }
21 | 
22 | - (NSString *)description
23 | {
24 |     return [NSString stringWithFormat:@"<%@ %p access:%@>", self.class, (void *)self, @(self.access)];
25 | }
26 | 
27 | @end
28 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBRecordWithNestedDerivings+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from derivings.djinni
 3 | 
 4 | #import "DBRecordWithNestedDerivings.h"
 5 | #include "record_with_nested_derivings.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBRecordWithNestedDerivings;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct RecordWithNestedDerivings
14 | {
15 |     using CppType = ::testsuite::RecordWithNestedDerivings;
16 |     using ObjcType = DBRecordWithNestedDerivings*;
17 | 
18 |     using Boxed = RecordWithNestedDerivings;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBRecordWithNestedDerivings.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from derivings.djinni
 3 | 
 4 | #import "DBRecordWithDerivings.h"
 5 | #import <Foundation/Foundation.h>
 6 | 
 7 | @interface DBRecordWithNestedDerivings : NSObject
 8 | - (nonnull instancetype)initWithKey:(int32_t)key
 9 |                                 rec:(nonnull DBRecordWithDerivings *)rec;
10 | + (nonnull instancetype)recordWithNestedDerivingsWithKey:(int32_t)key
11 |                                                      rec:(nonnull DBRecordWithDerivings *)rec;
12 | 
13 | @property (nonatomic, readonly) int32_t key;
14 | 
15 | @property (nonatomic, readonly, nonnull) DBRecordWithDerivings * rec;
16 | 
17 | - (NSComparisonResult)compare:(nonnull DBRecordWithNestedDerivings *)other;
18 | 
19 | @end
20 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBReturnOne.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | @class DBReturnOne;
 6 | 
 7 | 
 8 | /** Used for C++ multiple inheritance tests */
 9 | @interface DBReturnOne : NSObject
10 | 
11 | + (nullable DBReturnOne *)getInstance;
12 | 
13 | - (int8_t)returnOne;
14 | 
15 | @end
16 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBReturnTwo.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | @class DBReturnTwo;
 6 | 
 7 | 
 8 | /** Used for C++ multiple inheritance tests */
 9 | @interface DBReturnTwo : NSObject
10 | 
11 | + (nullable DBReturnTwo *)getInstance;
12 | 
13 | - (int8_t)returnTwo;
14 | 
15 | @end
16 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBReverseClientInterface.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from client_interface.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | @class DBReverseClientInterface;
 6 | 
 7 | 
 8 | @interface DBReverseClientInterface : NSObject
 9 | 
10 | - (nonnull NSString *)returnStr;
11 | 
12 | - (nonnull NSString *)methTakingInterface:(nullable DBReverseClientInterface *)i;
13 | 
14 | - (nonnull NSString *)methTakingOptionalInterface:(nullable DBReverseClientInterface *)i;
15 | 
16 | + (nullable DBReverseClientInterface *)create;
17 | 
18 | @end
19 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBSampleInterface.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from test.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | 
 7 | /**
 8 |  * we need to test optional interface
 9 |  * this one will be used
10 |  */
11 | @interface DBSampleInterface : NSObject
12 | 
13 | @end
14 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBSecondListener.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from multiple_inheritance.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | 
 7 | /** Used for ObjC multiple inheritance tests */
 8 | @protocol DBSecondListener
 9 | 
10 | - (void)second;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBSetRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from set.djinni
 3 | 
 4 | #import "DBSetRecord.h"
 5 | #include "set_record.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBSetRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct SetRecord
14 | {
15 |     using CppType = ::testsuite::SetRecord;
16 |     using ObjcType = DBSetRecord*;
17 | 
18 |     using Boxed = SetRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBSetRecord+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from set.djinni
 3 | 
 4 | #import "DBSetRecord+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto SetRecord::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::Set<::djinni::String>::toCpp(obj.set),
14 |             ::djinni::Set<::djinni::I32>::toCpp(obj.iset)};
15 | }
16 | 
17 | auto SetRecord::fromCpp(const CppType& cpp) -> ObjcType
18 | {
19 |     return [[DBSetRecord alloc] initWithSet:(::djinni::Set<::djinni::String>::fromCpp(cpp.set))
20 |                                        iset:(::djinni::Set<::djinni::I32>::fromCpp(cpp.iset))];
21 | }
22 | 
23 | }  // namespace djinni_generated
24 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBSetRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from set.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBSetRecord : NSObject
 7 | - (nonnull instancetype)initWithSet:(nonnull NSSet<NSString *> *)set
 8 |                                iset:(nonnull NSSet<NSNumber *> *)iset;
 9 | + (nonnull instancetype)setRecordWithSet:(nonnull NSSet<NSString *> *)set
10 |                                     iset:(nonnull NSSet<NSNumber *> *)iset;
11 | 
12 | @property (nonatomic, readonly, nonnull) NSSet<NSString *> * set;
13 | 
14 | @property (nonatomic, readonly, nonnull) NSSet<NSNumber *> * iset;
15 | 
16 | @end
17 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBTestOptionalExternInterfaceRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from yaml-test.djinni
 3 | 
 4 | #import "DBSampleInterface.h"
 5 | #import <Foundation/Foundation.h>
 6 | 
 7 | @interface DBTestOptionalExternInterfaceRecord : NSObject
 8 | - (nonnull instancetype)initWithSampleInterface:(nullable DBSampleInterface *)sampleInterface;
 9 | + (nonnull instancetype)testOptionalExternInterfaceRecordWithSampleInterface:(nullable DBSampleInterface *)sampleInterface;
10 | 
11 | @property (nonatomic, readonly, nullable) DBSampleInterface * sampleInterface;
12 | 
13 | @end
14 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBUserToken.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from user_token.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | 
 7 | @protocol DBUserToken
 8 | 
 9 | - (nonnull NSString *)whoami;
10 | 
11 | @end
12 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBUsesSingleLanguageListeners.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from single_language_interfaces.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | @class DBJavaOnlyListener;
 6 | @protocol DBObjcOnlyListener;
 7 | 
 8 | 
 9 | /**
10 |  * Generating and compiling this makes sure other languages don't break
11 |  * on references to interfaces they don't need.
12 |  */
13 | @protocol DBUsesSingleLanguageListeners
14 | 
15 | - (void)callForObjC:(nullable id<DBObjcOnlyListener>)l;
16 | 
17 | - (nullable id<DBObjcOnlyListener>)returnForObjC;
18 | 
19 | - (void)callForJava:(nullable DBJavaOnlyListener *)l;
20 | 
21 | - (nullable DBJavaOnlyListener *)returnForJava;
22 | 
23 | @end
24 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBVarnameInterface.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from varnames.djinni
 3 | 
 4 | #import "DBVarnameRecord.h"
 5 | #import <Foundation/Foundation.h>
 6 | @class DBVarnameInterface;
 7 | 
 8 | 
 9 | @interface DBVarnameInterface : NSObject
10 | 
11 | /**
12 |  * We should also rewrite parameter names in docstrings.
13 |  * RArg should be rewritten.
14 |  * _i_arg_ should not.
15 |  */
16 | - (nonnull DBVarnameRecord *)Rmethod:(nonnull DBVarnameRecord *)RArg;
17 | 
18 | - (nullable DBVarnameInterface *)Imethod:(nullable DBVarnameInterface *)IArg;
19 | 
20 | @end
21 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBVarnameRecord+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from varnames.djinni
 3 | 
 4 | #import "DBVarnameRecord.h"
 5 | #include "_varname_record_.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBVarnameRecord;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct VarnameRecord
14 | {
15 |     using CppType = ::testsuite::VarnameRecord;
16 |     using ObjcType = DBVarnameRecord*;
17 | 
18 |     using Boxed = VarnameRecord;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBVarnameRecord+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from varnames.djinni
 3 | 
 4 | #import "DBVarnameRecord+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto VarnameRecord::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::I8::toCpp(obj.Field)};
14 | }
15 | 
16 | auto VarnameRecord::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBVarnameRecord alloc] initWithField:(::djinni::I8::fromCpp(cpp._field_))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBVarnameRecord.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from varnames.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | /**
 7 |  * Underscore is used as a separator in Djinni names, so we don't really
 8 |  * anticipate it to be used as a prefix/suffix.  Some name styles behave
 9 |  * badly when it is.  However this test case ensures we at least don't crash.
10 |  */
11 | @interface DBVarnameRecord : NSObject
12 | - (nonnull instancetype)initWithField:(int8_t)Field;
13 | + (nonnull instancetype)VarnameRecordWithField:(int8_t)Field;
14 | 
15 | @property (nonatomic, readonly) int8_t Field;
16 | 
17 | @end
18 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBVarnameRecord.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from varnames.djinni
 3 | 
 4 | #import "DBVarnameRecord.h"
 5 | 
 6 | 
 7 | @implementation DBVarnameRecord
 8 | 
 9 | - (nonnull instancetype)initWithField:(int8_t)Field
10 | {
11 |     if (self = [super init]) {
12 |         _Field = Field;
13 |     }
14 |     return self;
15 | }
16 | 
17 | + (nonnull instancetype)VarnameRecordWithField:(int8_t)Field
18 | {
19 |     return [(DBVarnameRecord*)[self alloc] initWithField:Field];
20 | }
21 | 
22 | - (NSString *)description
23 | {
24 |     return [NSString stringWithFormat:@"<%@ %p Field:%@>", self.class, (void *)self, @(self.Field)];
25 | }
26 | 
27 | @end
28 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBWcharTestHelpers.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from wchar_test.djinni
 3 | 
 4 | #import "DBWcharTestRec.h"
 5 | #import <Foundation/Foundation.h>
 6 | 
 7 | 
 8 | @interface DBWcharTestHelpers : NSObject
 9 | 
10 | + (nonnull DBWcharTestRec *)getRecord;
11 | 
12 | + (nonnull NSString *)getString;
13 | 
14 | + (BOOL)checkString:(nonnull NSString *)str;
15 | 
16 | + (BOOL)checkRecord:(nonnull DBWcharTestRec *)rec;
17 | 
18 | @end
19 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBWcharTestRec+Private.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from wchar_test.djinni
 3 | 
 4 | #import "DBWcharTestRec.h"
 5 | #include "wchar_test_rec.hpp"
 6 | 
 7 | static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for this file");
 8 | 
 9 | @class DBWcharTestRec;
10 | 
11 | namespace djinni_generated {
12 | 
13 | struct WcharTestRec
14 | {
15 |     using CppType = ::testsuite::WcharTestRec;
16 |     using ObjcType = DBWcharTestRec*;
17 | 
18 |     using Boxed = WcharTestRec;
19 | 
20 |     static CppType toCpp(ObjcType objc);
21 |     static ObjcType fromCpp(const CppType& cpp);
22 | };
23 | 
24 | }  // namespace djinni_generated
25 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBWcharTestRec+Private.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from wchar_test.djinni
 3 | 
 4 | #import "DBWcharTestRec+Private.h"
 5 | #import "DJIMarshal+Private.h"
 6 | #include <cassert>
 7 | 
 8 | namespace djinni_generated {
 9 | 
10 | auto WcharTestRec::toCpp(ObjcType obj) -> CppType
11 | {
12 |     assert(obj);
13 |     return {::djinni::WString::toCpp(obj.s)};
14 | }
15 | 
16 | auto WcharTestRec::fromCpp(const CppType& cpp) -> ObjcType
17 | {
18 |     return [[DBWcharTestRec alloc] initWithS:(::djinni::WString::fromCpp(cpp.s))];
19 | }
20 | 
21 | }  // namespace djinni_generated
22 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBWcharTestRec.h:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from wchar_test.djinni
 3 | 
 4 | #import <Foundation/Foundation.h>
 5 | 
 6 | @interface DBWcharTestRec : NSObject
 7 | - (nonnull instancetype)initWithS:(nonnull NSString *)s;
 8 | + (nonnull instancetype)wcharTestRecWithS:(nonnull NSString *)s;
 9 | 
10 | @property (nonatomic, readonly, nonnull) NSString * s;
11 | 
12 | @end
13 | 


--------------------------------------------------------------------------------
/test-suite/generated-src/objc/DBWcharTestRec.mm:
--------------------------------------------------------------------------------
 1 | // AUTOGENERATED FILE - DO NOT MODIFY!
 2 | // This file generated by Djinni from wchar_test.djinni
 3 | 
 4 | #import "DBWcharTestRec.h"
 5 | 
 6 | 
 7 | @implementation DBWcharTestRec
 8 | 
 9 | - (nonnull instancetype)initWithS:(nonnull NSString *)s
10 | {
11 |     if (self = [super init]) {
12 |         _s = [s copy];
13 |     }
14 |     return self;
15 | }
16 | 
17 | + (nonnull instancetype)wcharTestRecWithS:(nonnull NSString *)s
18 | {
19 |     return [(DBWcharTestRec*)[self alloc] initWithS:s];
20 | }
21 | 
22 | - (NSString *)description
23 | {
24 |     return [NSString stringWithFormat:@"<%@ %p s:%@>", self.class, (void *)self, self.s];
25 | }
26 | 
27 | @end
28 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/cpp/cpp_exception_impl.cpp:
--------------------------------------------------------------------------------
 1 | #include "cpp_exception_impl.hpp"
 2 | #include <exception>
 3 | 
 4 | namespace testsuite {
 5 | 
 6 | int32_t CppExceptionImpl::throw_an_exception() {
 7 |     throw ExampleException();
 8 | }
 9 | 
10 | std::shared_ptr<CppException> CppException::get() {
11 |     return std::make_shared<CppExceptionImpl>();
12 | }
13 | 
14 | } // namespace testsuite
15 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/cpp/cpp_exception_impl.hpp:
--------------------------------------------------------------------------------
 1 | #include "cpp_exception.hpp"
 2 | #include <exception>
 3 | 
 4 | namespace testsuite {
 5 | 
 6 | class ExampleException: public std::exception {
 7 |     virtual const char* what() const throw() {
 8 |         return "Exception Thrown";
 9 |     }
10 | };
11 | 
12 | extern ExampleException EXAMPLE_EXCEPTION;
13 | 
14 | class CppExceptionImpl : public CppException {
15 |     public:
16 |     CppExceptionImpl() {}
17 |     virtual ~CppExceptionImpl() {}
18 | 
19 |     virtual int32_t throw_an_exception () override;
20 | };
21 | 
22 | } // namespace testsuite
23 | 
24 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/cpp/extended_record.cpp:
--------------------------------------------------------------------------------
 1 | #include "extended_record.hpp"
 2 | 
 3 | // Validate these generated headers are compilable.
 4 | #include "record_using_extended_record.hpp"
 5 | #include "interface_using_extended_record.hpp"
 6 | 
 7 | using namespace testsuite;
 8 | 
 9 | ExtendedRecord::ExtendedRecord() : ExtendedRecordBase(true) {}
10 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/cpp/extended_record.hpp:
--------------------------------------------------------------------------------
 1 | #pragma once
 2 | 
 3 | #include "extended_record_base.hpp"
 4 | 
 5 | namespace testsuite {
 6 |     
 7 |     struct ExtendedRecord : public ExtendedRecordBase
 8 |     {
 9 |         using ExtendedRecordBase::ExtendedRecordBase;
10 |         
11 |         ExtendedRecord();
12 |     };
13 | }


--------------------------------------------------------------------------------
/test-suite/handwritten-src/cpp/flag_roundtrip.cpp:
--------------------------------------------------------------------------------
 1 | #include "flag_roundtrip.hpp"
 2 | 
 3 | using namespace testsuite;
 4 | 
 5 | access_flags FlagRoundtrip::roundtrip_access(access_flags flag) {
 6 |   return flag;
 7 | }
 8 | 
 9 | empty_flags FlagRoundtrip::roundtrip_empty(empty_flags flag) {
10 |   return flag;
11 | }
12 | 
13 | std::experimental::optional<access_flags> FlagRoundtrip::roundtrip_access_boxed(std::experimental::optional<access_flags> flag) {
14 |   return flag;
15 | }
16 | 
17 | std::experimental::optional<empty_flags> FlagRoundtrip::roundtrip_empty_boxed(std::experimental::optional<empty_flags> flag) {
18 |   return flag;
19 | }
20 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/cpp/return_one_two.cpp:
--------------------------------------------------------------------------------
 1 | #include "return_one.hpp"
 2 | #include "return_two.hpp"
 3 | 
 4 | namespace testsuite {
 5 | 
 6 | class ReturnOneTwo : public ReturnOne, public ReturnTwo {
 7 | public:
 8 |     static std::shared_ptr<ReturnOneTwo> shared_instance() {
 9 |         static auto instance = std::make_shared<ReturnOneTwo>();
10 |         return instance;
11 |     }
12 | 
13 |     int8_t return_one() override { return 1; }
14 |     int8_t return_two() override { return 2; }
15 | };
16 | 
17 | std::shared_ptr<ReturnOne> ReturnOne::get_instance() {
18 |     return ReturnOneTwo::shared_instance();
19 | }
20 | 
21 | std::shared_ptr<ReturnTwo> ReturnTwo::get_instance() {
22 |     return ReturnOneTwo::shared_instance();
23 | }
24 | 
25 | }  // namespace testsuite
26 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/cpp/reverse_client_interface_impl.hpp:
--------------------------------------------------------------------------------
 1 | #include "reverse_client_interface.hpp"
 2 | 
 3 | namespace testsuite {
 4 | 
 5 | class ReverseClientInterfaceImpl : public ReverseClientInterface {
 6 |     public:
 7 |     ReverseClientInterfaceImpl() {}
 8 |     virtual ~ReverseClientInterfaceImpl() {}
 9 | 
10 |     virtual std::string return_str() const override;
11 | 
12 |     virtual std::string meth_taking_interface(const std::shared_ptr<ReverseClientInterface> & i) override;
13 | 
14 |     virtual std::string meth_taking_optional_interface(const std::shared_ptr<ReverseClientInterface> & i) override;
15 | 
16 |     static std::shared_ptr<ReverseClientInterface> create();
17 | };
18 | 
19 | } // namespace testsuite
20 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/java/com/dropbox/djinni/test/CppExceptionTest.java:
--------------------------------------------------------------------------------
 1 | package com.dropbox.djinni.test;
 2 | 
 3 | import junit.framework.TestCase;
 4 | 
 5 | public class CppExceptionTest extends TestCase {
 6 | 
 7 |     private CppException cppInterface;
 8 | 
 9 |     @Override
10 |     protected void setUp() {
11 |         cppInterface = CppException.get();
12 |     }
13 | 
14 |     public void testCppException() {
15 |         String thrown = null;
16 |         try {
17 |             cppInterface.throwAnException();
18 |         } catch (RuntimeException e) {
19 |             thrown = e.getMessage();
20 |         }
21 |         assertEquals("Exception Thrown", thrown);
22 |     }
23 | 
24 | }
25 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/java/com/dropbox/djinni/test/MockRecordTest.java:
--------------------------------------------------------------------------------
 1 | package com.dropbox.djinni.test;
 2 | 
 3 | import junit.framework.TestCase;
 4 | 
 5 | class MockConstants extends Constants {
 6 |     @Override
 7 |     public String toString() {
 8 |         return "MockConstants{}";
 9 |     }
10 | }
11 | 
12 | public class MockRecordTest extends TestCase {
13 | 
14 |     public void testMockConstants() {
15 |         Constants mock = new MockConstants();
16 |         assertEquals("The toString() method should be overridden.", "MockConstants{}", mock.toString());
17 |     }
18 | }
19 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/java/com/dropbox/djinni/test/PrimitivesTest.java:
--------------------------------------------------------------------------------
 1 | package com.dropbox.djinni.test;
 2 | 
 3 | import junit.framework.TestCase;
 4 | 
 5 | public class PrimitivesTest extends TestCase {
 6 | 
 7 |     public void testPrimitives() {
 8 |         AssortedPrimitives p = new AssortedPrimitives(true, (byte)123, (short)20000, 1000000000, 1234567890123456789L, 1.23f, 1.23d,
 9 |                                                       true, (byte)123, (short)20000, 1000000000, 1234567890123456789L, 1.23f, 1.23d);
10 |         assertEquals(p, TestHelpers.assortedPrimitivesId(p));
11 |     }
12 | 
13 | }
14 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/java/com/dropbox/djinni/test/WcharTest.java:
--------------------------------------------------------------------------------
 1 | package com.dropbox.djinni.test;
 2 | 
 3 | import junit.framework.TestCase;
 4 | 
 5 | public class WcharTest extends TestCase {
 6 | 
 7 |     private static final String STR1 = "some string with unicode \u0000, \u263A, \uD83D\uDCA9 symbols";
 8 |     private static final String STR2 = "another string with unicode \u263B, \uD83D\uDCA8 symbols";
 9 | 
10 |     public void test() {
11 |         assertEquals(WcharTestHelpers.getRecord().getS(), STR1);
12 |         assertEquals(WcharTestHelpers.getString(), STR2);
13 |         assertEquals(WcharTestHelpers.checkString(STR2), true);
14 |         assertEquals(WcharTestHelpers.checkRecord(new WcharTestRec(STR1)), true);
15 |     }
16 | }
17 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/objc/impl/DBClientInterfaceImpl.h:
--------------------------------------------------------------------------------
1 | #import "DBClientInterface.h"
2 | #import <Foundation/Foundation.h>
3 | 
4 | @interface DBClientInterfaceImpl : NSObject <DBClientInterface>
5 | 
6 | @end
7 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/objc/tests/DBConstantTests.mm:
--------------------------------------------------------------------------------
 1 | #import "DBConstants.h"
 2 | 
 3 | #import <XCTest/XCTest.h>
 4 | 
 5 | @interface DBConstantTests : XCTestCase
 6 | 
 7 | @end
 8 | 
 9 | @implementation DBConstantTests
10 | 
11 | - (void)methodThatTakesString:(__unused NSString *)string
12 | {
13 | }
14 | 
15 | - (void)testCallingMethodThatTakesStringWithConstant
16 | {
17 |     [self methodThatTakesString:DBConstantsStringConstant];
18 | }
19 | 
20 | @end
21 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/objc/tests/DjinniObjcTestTests-Info.plist:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3 | <plist version="1.0">
 4 | <dict>
 5 | 	<key>CFBundleDevelopmentRegion</key>
 6 | 	<string>en</string>
 7 | 	<key>CFBundleExecutable</key>
 8 | 	<string>${EXECUTABLE_NAME}</string>
 9 | 	<key>CFBundleIdentifier</key>
10 | 	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
11 | 	<key>CFBundleInfoDictionaryVersion</key>
12 | 	<string>6.0</string>
13 | 	<key>CFBundlePackageType</key>
14 | 	<string>BNDL</string>
15 | 	<key>CFBundleShortVersionString</key>
16 | 	<string>1.0</string>
17 | 	<key>CFBundleSignature</key>
18 | 	<string>????</string>
19 | 	<key>CFBundleVersion</key>
20 | 	<string>1</string>
21 | </dict>
22 | </plist>
23 | 


--------------------------------------------------------------------------------
/test-suite/handwritten-src/objc/tests/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 | 
3 | 


--------------------------------------------------------------------------------
/test-suite/java/.gitignore:
--------------------------------------------------------------------------------
1 | classes/
2 | build/
3 | *.dylib
4 | *.dSYM
5 | 


--------------------------------------------------------------------------------
/test-suite/java/docker/build_and_run_tests.sh:
--------------------------------------------------------------------------------
 1 | #!/bin/sh
 2 | 
 3 | # Build and run djinni tests. Intended to be run
 4 | # from inside a Docker container
 5 | 
 6 | set -e
 7 | set -x
 8 | 
 9 | cd /opt/djinni/test-suite/java
10 | ant -v clean compile test 
11 | ant -v jar run-jar
12 | ant clean
13 | 
14 | 


--------------------------------------------------------------------------------
/test-suite/java/docker/debian_jessie/Dockerfile:
--------------------------------------------------------------------------------
 1 | FROM debian:jessie
 2 | 
 3 | # Use Java 8 backport
 4 | RUN echo "deb http://http.debian.net/debian jessie-backports main" >> /etc/apt/sources.list
 5 | 
 6 | RUN apt-get update
 7 | 
 8 | RUN apt-get -y install build-essential clang llvm cmake
 9 | RUN apt-get install -y -t jessie-backports ca-certificates-java
10 | RUN apt-get install -y openjdk-8-jdk ant
11 | 
12 | # Select Java 8
13 | RUN update-java-alternatives -s java-1.8.0-openjdk-amd64
14 | RUN rm -f /usr/lib/jvm/default-java
15 | RUN ln -s /usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/default-java
16 | 
17 | ENV CXX clang++
18 | 
19 | VOLUME /opt/djinni
20 | CMD /opt/djinni/test-suite/java/docker/build_and_run_tests.sh
21 | 
22 | 


--------------------------------------------------------------------------------
/test-suite/java/docker/fedora_24/Dockerfile:
--------------------------------------------------------------------------------
 1 | FROM fedora:24
 2 | 
 3 | # Get Java 8 (64-bit)
 4 | RUN dnf install -y java-1.8.0-openjdk-devel
 5 | 
 6 | # Get other build utils
 7 | RUN dnf install -y cmake wget tar make gcc-c++
 8 | 
 9 | # Select Java 8
10 | RUN echo 1 | update-alternatives --config java
11 | RUN echo 1 | update-alternatives --config javac
12 | 
13 | # Get modern ant
14 | RUN yum install -y ant
15 | ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk
16 | 
17 | VOLUME /opt/djinni
18 | CMD /opt/djinni/test-suite/java/docker/build_and_run_tests.sh
19 | 
20 | 


--------------------------------------------------------------------------------
/test-suite/java/docker/ubuntu_utopic/Dockerfile:
--------------------------------------------------------------------------------
 1 | FROM ubuntu:utopic-20150625
 2 | 
 3 | RUN apt-get update
 4 | RUN apt-get -y install build-essential clang cmake
 5 | 
 6 | RUN apt-get install -y openjdk-8-jdk ant
 7 | 
 8 | ENV CXX clang++
 9 | 
10 | # Select Java 8
11 | RUN update-java-alternatives -s java-1.8.0-openjdk-amd64
12 | RUN rm /usr/lib/jvm/default-java
13 | RUN ln -s /usr/lib/jvm/java-8-openjdk-amd64 /usr/lib/jvm/default-java
14 | 
15 | VOLUME /opt/djinni
16 | CMD /opt/djinni/test-suite/java/docker/build_and_run_tests.sh
17 | 
18 | 


--------------------------------------------------------------------------------