From d193c9c79e3983d928304443742113d5457d321a Mon Sep 17 00:00:00 2001 From: Emily Toop Date: Tue, 24 Apr 2018 09:18:43 +0100 Subject: [PATCH] Add iOS framework --- .../Mentat/Mentat.xcodeproj/project.pbxproj | 627 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 5 + .../xcschemes/Mentat Debug.xcscheme | 99 +++ .../xcshareddata/xcschemes/Mentat.xcscheme | 99 +++ sdks/swift/Mentat/Mentat/Info.plist | 24 + sdks/swift/Mentat/Mentat/Mentat.h | 20 + sdks/swift/Mentat/Mentat/module.map | 4 + sdks/swift/Mentat/Mentat/store.h | 148 +++++ 10 files changed, 1041 insertions(+) create mode 100644 sdks/swift/Mentat/Mentat.xcodeproj/project.pbxproj create mode 100644 sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 sdks/swift/Mentat/Mentat.xcodeproj/xcshareddata/xcschemes/Mentat Debug.xcscheme create mode 100644 sdks/swift/Mentat/Mentat.xcodeproj/xcshareddata/xcschemes/Mentat.xcscheme create mode 100644 sdks/swift/Mentat/Mentat/Info.plist create mode 100644 sdks/swift/Mentat/Mentat/Mentat.h create mode 100644 sdks/swift/Mentat/Mentat/module.map create mode 100644 sdks/swift/Mentat/Mentat/store.h diff --git a/sdks/swift/Mentat/Mentat.xcodeproj/project.pbxproj b/sdks/swift/Mentat/Mentat.xcodeproj/project.pbxproj new file mode 100644 index 00000000..62055d08 --- /dev/null +++ b/sdks/swift/Mentat/Mentat.xcodeproj/project.pbxproj @@ -0,0 +1,627 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 7B744837208DF20D006CFFB0 /* EntityBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B744836208DF20D006CFFB0 /* EntityBuilder.swift */; }; + 7B744839208DF2E1006CFFB0 /* InProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B744838208DF2E1006CFFB0 /* InProgress.swift */; }; + 7B74483B208DF2F9006CFFB0 /* InProgressBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B74483A208DF2F9006CFFB0 /* InProgressBuilder.swift */; }; + 7B74483D208DF667006CFFB0 /* Result+Unwrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B74483C208DF667006CFFB0 /* Result+Unwrap.swift */; }; + 7BAE75A22089020E00895D37 /* libmentat_ffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BEB7D23207BE2AF000369AD /* libmentat_ffi.a */; }; + 7BAE75A42089022B00895D37 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BAE75A32089022B00895D37 /* libsqlite3.tbd */; }; + 7BDB96942077C299009D0651 /* Mentat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BDB968A2077C299009D0651 /* Mentat.framework */; }; + 7BDB96992077C299009D0651 /* MentatTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB96982077C299009D0651 /* MentatTests.swift */; }; + 7BDB969B2077C299009D0651 /* Mentat.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BDB968D2077C299009D0651 /* Mentat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7BDB96AF2077C38E009D0651 /* Query.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB96A62077C38D009D0651 /* Query.swift */; }; + 7BDB96B02077C38E009D0651 /* Mentat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB96A72077C38D009D0651 /* Mentat.swift */; }; + 7BDB96B12077C38E009D0651 /* store.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BDB96A82077C38E009D0651 /* store.h */; }; + 7BDB96B22077C38E009D0651 /* RelResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB96A92077C38E009D0651 /* RelResult.swift */; }; + 7BDB96B32077C38E009D0651 /* RustObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB96AA2077C38E009D0651 /* RustObject.swift */; }; + 7BDB96B42077C38E009D0651 /* OptionalRustObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB96AB2077C38E009D0651 /* OptionalRustObject.swift */; }; + 7BDB96B52077C38E009D0651 /* TupleResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB96AC2077C38E009D0651 /* TupleResult.swift */; }; + 7BDB96B72077C38E009D0651 /* TypedValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB96AE2077C38E009D0651 /* TypedValue.swift */; }; + 7BDB96C22077CD98009D0651 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BDB96C12077CD98009D0651 /* libresolv.tbd */; }; + 7BDB96C62077D347009D0651 /* Date+Int64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB96C52077D346009D0651 /* Date+Int64.swift */; }; + 7BDB96C9207B735A009D0651 /* fixtures in Resources */ = {isa = PBXBuildFile; fileRef = 7BDB96C8207B735A009D0651 /* fixtures */; }; + 7BDB96CC207B7684009D0651 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BDB96CB207B7684009D0651 /* Errors.swift */; }; + 7BEB7D2C207D03DA000369AD /* TxReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BEB7D2B207D03DA000369AD /* TxReport.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 7BDB96952077C299009D0651 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 7BDB96812077C299009D0651 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7BDB96892077C299009D0651; + remoteInfo = Mentat; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 7B744836208DF20D006CFFB0 /* EntityBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EntityBuilder.swift; sourceTree = ""; }; + 7B744838208DF2E1006CFFB0 /* InProgress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InProgress.swift; sourceTree = ""; }; + 7B74483A208DF2F9006CFFB0 /* InProgressBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InProgressBuilder.swift; sourceTree = ""; }; + 7B74483C208DF667006CFFB0 /* Result+Unwrap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "Result+Unwrap.swift"; path = "Mentat/Extensions/Result+Unwrap.swift"; sourceTree = SOURCE_ROOT; }; + 7B911E1A2085081D000998CB /* libtoodle.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtoodle.a; path = "../../../../sync-storage-prototype/rust/target/universal/release/libtoodle.a"; sourceTree = ""; }; + 7BAE75A32089022B00895D37 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; + 7BDB968A2077C299009D0651 /* Mentat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Mentat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7BDB968D2077C299009D0651 /* Mentat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Mentat.h; sourceTree = ""; }; + 7BDB968E2077C299009D0651 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 7BDB96932077C299009D0651 /* MentatTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MentatTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 7BDB96982077C299009D0651 /* MentatTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MentatTests.swift; sourceTree = ""; }; + 7BDB969A2077C299009D0651 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 7BDB96A62077C38D009D0651 /* Query.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Query.swift; sourceTree = ""; }; + 7BDB96A72077C38D009D0651 /* Mentat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mentat.swift; sourceTree = ""; }; + 7BDB96A82077C38E009D0651 /* store.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = store.h; sourceTree = ""; }; + 7BDB96A92077C38E009D0651 /* RelResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RelResult.swift; sourceTree = ""; }; + 7BDB96AA2077C38E009D0651 /* RustObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RustObject.swift; sourceTree = ""; }; + 7BDB96AB2077C38E009D0651 /* OptionalRustObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionalRustObject.swift; sourceTree = ""; }; + 7BDB96AC2077C38E009D0651 /* TupleResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TupleResult.swift; sourceTree = ""; }; + 7BDB96AE2077C38E009D0651 /* TypedValue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TypedValue.swift; sourceTree = ""; }; + 7BDB96BF2077CD7A009D0651 /* libmentat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmentat.a; path = ../../../target/universal/release/libmentat.a; sourceTree = ""; }; + 7BDB96C12077CD98009D0651 /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; + 7BDB96C32077D090009D0651 /* module.map */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module.map; sourceTree = ""; }; + 7BDB96C52077D346009D0651 /* Date+Int64.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Date+Int64.swift"; sourceTree = ""; }; + 7BDB96C8207B735A009D0651 /* fixtures */ = {isa = PBXFileReference; lastKnownFileType = folder; name = fixtures; path = ../../../../fixtures; sourceTree = ""; }; + 7BDB96CB207B7684009D0651 /* Errors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; + 7BEB7D21207BDDEF000369AD /* libtoodle.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtoodle.a; path = ../../../target/universal/release/libtoodle.a; sourceTree = ""; }; + 7BEB7D23207BE2AF000369AD /* libmentat_ffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmentat_ffi.a; path = ../../../target/universal/release/libmentat_ffi.a; sourceTree = ""; }; + 7BEB7D2B207D03DA000369AD /* TxReport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TxReport.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 7BDB96862077C299009D0651 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7BAE75A42089022B00895D37 /* libsqlite3.tbd in Frameworks */, + 7BDB96C22077CD98009D0651 /* libresolv.tbd in Frameworks */, + 7BAE75A22089020E00895D37 /* libmentat_ffi.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7BDB96902077C299009D0651 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7BDB96942077C299009D0651 /* Mentat.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 7BDB96802077C299009D0651 = { + isa = PBXGroup; + children = ( + 7BDB968C2077C299009D0651 /* Mentat */, + 7BDB96972077C299009D0651 /* MentatTests */, + 7BDB968B2077C299009D0651 /* Products */, + 7BDB96BE2077CD7A009D0651 /* Frameworks */, + ); + sourceTree = ""; + }; + 7BDB968B2077C299009D0651 /* Products */ = { + isa = PBXGroup; + children = ( + 7BDB968A2077C299009D0651 /* Mentat.framework */, + 7BDB96932077C299009D0651 /* MentatTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 7BDB968C2077C299009D0651 /* Mentat */ = { + isa = PBXGroup; + children = ( + 7BDB96CA207B7672009D0651 /* Errors */, + 7BDB96C42077D346009D0651 /* Extensions */, + 7BDB96BA2077C42B009D0651 /* Core */, + 7BDB96A42077C301009D0651 /* Query */, + 7BDB96B92077C403009D0651 /* Rust */, + 7BDB96A82077C38E009D0651 /* store.h */, + 7BDB96A72077C38D009D0651 /* Mentat.swift */, + 7BEB7D26207BE5BB000369AD /* Transact */, + 7BDB968D2077C299009D0651 /* Mentat.h */, + 7BDB968E2077C299009D0651 /* Info.plist */, + 7BDB96C32077D090009D0651 /* module.map */, + ); + path = Mentat; + sourceTree = ""; + }; + 7BDB96972077C299009D0651 /* MentatTests */ = { + isa = PBXGroup; + children = ( + 7BDB96C8207B735A009D0651 /* fixtures */, + 7BDB96982077C299009D0651 /* MentatTests.swift */, + 7BDB969A2077C299009D0651 /* Info.plist */, + ); + path = MentatTests; + sourceTree = ""; + }; + 7BDB96A42077C301009D0651 /* Query */ = { + isa = PBXGroup; + children = ( + 7BDB96A62077C38D009D0651 /* Query.swift */, + 7BDB96A92077C38E009D0651 /* RelResult.swift */, + 7BDB96AC2077C38E009D0651 /* TupleResult.swift */, + ); + path = Query; + sourceTree = ""; + }; + 7BDB96B92077C403009D0651 /* Rust */ = { + isa = PBXGroup; + children = ( + 7BDB96AB2077C38E009D0651 /* OptionalRustObject.swift */, + 7BDB96AA2077C38E009D0651 /* RustObject.swift */, + ); + path = Rust; + sourceTree = ""; + }; + 7BDB96BA2077C42B009D0651 /* Core */ = { + isa = PBXGroup; + children = ( + 7BDB96AE2077C38E009D0651 /* TypedValue.swift */, + ); + path = Core; + sourceTree = ""; + }; + 7BDB96BE2077CD7A009D0651 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 7BAE75A32089022B00895D37 /* libsqlite3.tbd */, + 7B911E1A2085081D000998CB /* libtoodle.a */, + 7BEB7D23207BE2AF000369AD /* libmentat_ffi.a */, + 7BEB7D21207BDDEF000369AD /* libtoodle.a */, + 7BDB96C12077CD98009D0651 /* libresolv.tbd */, + 7BDB96BF2077CD7A009D0651 /* libmentat.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 7BDB96C42077D346009D0651 /* Extensions */ = { + isa = PBXGroup; + children = ( + 7B74483C208DF667006CFFB0 /* Result+Unwrap.swift */, + 7BDB96C52077D346009D0651 /* Date+Int64.swift */, + ); + path = Extensions; + sourceTree = ""; + }; + 7BDB96CA207B7672009D0651 /* Errors */ = { + isa = PBXGroup; + children = ( + 7BDB96CB207B7684009D0651 /* Errors.swift */, + ); + path = Errors; + sourceTree = ""; + }; + 7BEB7D26207BE5BB000369AD /* Transact */ = { + isa = PBXGroup; + children = ( + 7BEB7D2B207D03DA000369AD /* TxReport.swift */, + 7B744836208DF20D006CFFB0 /* EntityBuilder.swift */, + 7B744838208DF2E1006CFFB0 /* InProgress.swift */, + 7B74483A208DF2F9006CFFB0 /* InProgressBuilder.swift */, + ); + path = Transact; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 7BDB96872077C299009D0651 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 7BDB96B12077C38E009D0651 /* store.h in Headers */, + 7BDB969B2077C299009D0651 /* Mentat.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 7BDB96892077C299009D0651 /* Mentat */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7BDB969E2077C299009D0651 /* Build configuration list for PBXNativeTarget "Mentat" */; + buildPhases = ( + 7BDB96852077C299009D0651 /* Sources */, + 7BDB96862077C299009D0651 /* Frameworks */, + 7BDB96872077C299009D0651 /* Headers */, + 7BDB96882077C299009D0651 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Mentat; + productName = Mentat; + productReference = 7BDB968A2077C299009D0651 /* Mentat.framework */; + productType = "com.apple.product-type.framework"; + }; + 7BDB96922077C299009D0651 /* MentatTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7BDB96A12077C299009D0651 /* Build configuration list for PBXNativeTarget "MentatTests" */; + buildPhases = ( + 7BDB968F2077C299009D0651 /* Sources */, + 7BDB96902077C299009D0651 /* Frameworks */, + 7BDB96912077C299009D0651 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 7BDB96962077C299009D0651 /* PBXTargetDependency */, + ); + name = MentatTests; + productName = MentatTests; + productReference = 7BDB96932077C299009D0651 /* MentatTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7BDB96812077C299009D0651 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0930; + LastUpgradeCheck = 0930; + ORGANIZATIONNAME = Mozilla; + TargetAttributes = { + 7BDB96892077C299009D0651 = { + CreatedOnToolsVersion = 9.3; + LastSwiftMigration = 0930; + }; + 7BDB96922077C299009D0651 = { + CreatedOnToolsVersion = 9.3; + }; + }; + }; + buildConfigurationList = 7BDB96842077C299009D0651 /* Build configuration list for PBXProject "Mentat" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7BDB96802077C299009D0651; + productRefGroup = 7BDB968B2077C299009D0651 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7BDB96892077C299009D0651 /* Mentat */, + 7BDB96922077C299009D0651 /* MentatTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7BDB96882077C299009D0651 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7BDB96912077C299009D0651 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7BDB96C9207B735A009D0651 /* fixtures in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7BDB96852077C299009D0651 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7BDB96B32077C38E009D0651 /* RustObject.swift in Sources */, + 7BDB96C62077D347009D0651 /* Date+Int64.swift in Sources */, + 7BEB7D2C207D03DA000369AD /* TxReport.swift in Sources */, + 7B744839208DF2E1006CFFB0 /* InProgress.swift in Sources */, + 7BDB96B42077C38E009D0651 /* OptionalRustObject.swift in Sources */, + 7B74483B208DF2F9006CFFB0 /* InProgressBuilder.swift in Sources */, + 7BDB96B22077C38E009D0651 /* RelResult.swift in Sources */, + 7BDB96AF2077C38E009D0651 /* Query.swift in Sources */, + 7BDB96CC207B7684009D0651 /* Errors.swift in Sources */, + 7BDB96B02077C38E009D0651 /* Mentat.swift in Sources */, + 7BDB96B72077C38E009D0651 /* TypedValue.swift in Sources */, + 7B744837208DF20D006CFFB0 /* EntityBuilder.swift in Sources */, + 7BDB96B52077C38E009D0651 /* TupleResult.swift in Sources */, + 7B74483D208DF667006CFFB0 /* Result+Unwrap.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7BDB968F2077C299009D0651 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7BDB96992077C299009D0651 /* MentatTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 7BDB96962077C299009D0651 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 7BDB96892077C299009D0651 /* Mentat */; + targetProxy = 7BDB96952077C299009D0651 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 7BDB969C2077C299009D0651 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.3; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = "-fembed-bitcode"; + OTHER_LDFLAGS = ""; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Mentat"; + SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 7BDB969D2077C299009D0651 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.3; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_CFLAGS = "-fembed-bitcode"; + OTHER_LDFLAGS = ""; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Mentat"; + SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 7BDB969F2077C299009D0651 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 8BHJ767F4Y; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Mentat/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/../../../target/universal/release"; + OTHER_CFLAGS = "-fembed-bitcode"; + OTHER_LDFLAGS = ""; + PRODUCT_BUNDLE_IDENTIFIER = com.mozilla.Mentat; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Mentat"; + SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7BDB96A02077C299009D0651 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 8BHJ767F4Y; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_TESTABILITY = NO; + INFOPLIST_FILE = Mentat/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)/../../../target/universal/release"; + OTHER_CFLAGS = "-fembed-bitcode"; + OTHER_LDFLAGS = ""; + PRODUCT_BUNDLE_IDENTIFIER = com.mozilla.Mentat; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Mentat"; + SWIFT_OBJC_BRIDGING_HEADER = ""; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 7BDB96A22077C299009D0651 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 8BHJ767F4Y; + INFOPLIST_FILE = MentatTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + PRODUCT_BUNDLE_IDENTIFIER = com.mozilla.MentatTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7BDB96A32077C299009D0651 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 8BHJ767F4Y; + INFOPLIST_FILE = MentatTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + PRODUCT_BUNDLE_IDENTIFIER = com.mozilla.MentatTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7BDB96842077C299009D0651 /* Build configuration list for PBXProject "Mentat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7BDB969C2077C299009D0651 /* Debug */, + 7BDB969D2077C299009D0651 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7BDB969E2077C299009D0651 /* Build configuration list for PBXNativeTarget "Mentat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7BDB969F2077C299009D0651 /* Debug */, + 7BDB96A02077C299009D0651 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7BDB96A12077C299009D0651 /* Build configuration list for PBXNativeTarget "MentatTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7BDB96A22077C299009D0651 /* Debug */, + 7BDB96A32077C299009D0651 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7BDB96812077C299009D0651 /* Project object */; +} diff --git a/sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..8f0c7f34 --- /dev/null +++ b/sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..0c67376e --- /dev/null +++ b/sdks/swift/Mentat/Mentat.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,5 @@ + + + + + diff --git a/sdks/swift/Mentat/Mentat.xcodeproj/xcshareddata/xcschemes/Mentat Debug.xcscheme b/sdks/swift/Mentat/Mentat.xcodeproj/xcshareddata/xcschemes/Mentat Debug.xcscheme new file mode 100644 index 00000000..589794d4 --- /dev/null +++ b/sdks/swift/Mentat/Mentat.xcodeproj/xcshareddata/xcschemes/Mentat Debug.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sdks/swift/Mentat/Mentat.xcodeproj/xcshareddata/xcschemes/Mentat.xcscheme b/sdks/swift/Mentat/Mentat.xcodeproj/xcshareddata/xcschemes/Mentat.xcscheme new file mode 100644 index 00000000..c03b16b0 --- /dev/null +++ b/sdks/swift/Mentat/Mentat.xcodeproj/xcshareddata/xcschemes/Mentat.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sdks/swift/Mentat/Mentat/Info.plist b/sdks/swift/Mentat/Mentat/Info.plist new file mode 100644 index 00000000..1007fd9d --- /dev/null +++ b/sdks/swift/Mentat/Mentat/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/sdks/swift/Mentat/Mentat/Mentat.h b/sdks/swift/Mentat/Mentat/Mentat.h new file mode 100644 index 00000000..6c6a1604 --- /dev/null +++ b/sdks/swift/Mentat/Mentat/Mentat.h @@ -0,0 +1,20 @@ +/* Copyright 2018 Mozilla + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use + * this file except in compliance with the License. You may obtain a copy of the + * License at http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software distributed + * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. */ + +#import + +//! Project version number for Mentat. +FOUNDATION_EXPORT double MentatVersionNumber; + +//! Project version string for Mentat. +FOUNDATION_EXPORT const unsigned char MentatVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + diff --git a/sdks/swift/Mentat/Mentat/module.map b/sdks/swift/Mentat/Mentat/module.map new file mode 100644 index 00000000..5cb44399 --- /dev/null +++ b/sdks/swift/Mentat/Mentat/module.map @@ -0,0 +1,4 @@ +module MentatStore [system][extern_c] { + header "store.h" + export * +} diff --git a/sdks/swift/Mentat/Mentat/store.h b/sdks/swift/Mentat/Mentat/store.h new file mode 100644 index 00000000..ff735c2f --- /dev/null +++ b/sdks/swift/Mentat/Mentat/store.h @@ -0,0 +1,148 @@ +/* Copyright 2018 Mozilla + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use + * this file except in compliance with the License. You may obtain a copy of the + * License at http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software distributed + * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + * CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. */ + +#ifndef store_h +#define store_h +#include +#include + +struct TxChange { + int64_t txid; + int64_t*_Nonnull* _Nonnull changes; + uint64_t len; +}; + +struct TxChangeList { + struct TxChange*_Nonnull* _Nonnull reports; + uint64_t len; +}; +typedef struct TxChangeList TxChangeList; + +struct Result { + void* _Nullable ok; + char* _Nullable err; +}; +typedef struct Result Result; + +struct Option { + void* _Nullable value; +}; +typedef struct Option Option; + +struct InProgressTransactResult { + struct InProgress*_Nonnull inProgress; + struct Result*_Nonnull result; +}; +typedef struct InProgressTransactResult InProgressTransactResult; + +typedef NS_ENUM(NSInteger, ValueType) { + ValueTypeRef = 1, + ValueTypeBoolean, + ValueTypeInstant, + ValueTypeLong, + ValueTypeDouble, + ValueTypeString, + ValueTypeKeyword, + ValueTypeUuid +}; + +struct EntityBuilder; +struct InProgress; +struct InProgressBuilder; +struct Query; +struct QueryResultRow; +struct QueryResultRows; +struct QueryRowsIterator; +struct QueryRowIterator; +struct Store; +struct TxReport; +struct TypedValue; + +// Store +struct Store*_Nonnull store_open(const char*_Nonnull uri); + +void destroy(void* _Nullable obj); +void query_builder_destroy(struct Query* _Nullable obj); +void store_destroy(struct Store* _Nonnull obj); +void tx_report_destroy(struct TxReport* _Nonnull obj); +void typed_value_destroy(struct TypedValue* _Nullable obj); +void typed_value_list_destroy(struct QueryResultRow* _Nullable obj); +void typed_value_list_iter_destroy(struct QueryRowIterator* _Nullable obj); +void typed_value_result_set_destroy(struct QueryResultRows* _Nullable obj); +void typed_value_result_set_iter_destroy(struct QueryRowsIterator* _Nullable obj); + +// transact +struct Result*_Nonnull store_transact(struct Store*_Nonnull store, const char* _Nonnull transaction); +const int64_t* _Nullable tx_report_entity_for_temp_id(const struct TxReport* _Nonnull report, const char* _Nonnull tempid); +int64_t tx_report_get_entid(const struct TxReport* _Nonnull report); +int64_t tx_report_get_tx_instant(const struct TxReport* _Nonnull report); + + +// Sync +struct Result*_Nonnull store_sync(struct Store*_Nonnull store, const char* _Nonnull user_uuid, const char* _Nonnull server_uri); + +// Observers +void store_register_observer(struct Store*_Nonnull store, const char* _Nonnull key, const int64_t* _Nonnull attributes, const int64_t len, void (*_Nonnull callback_fn)(const char* _Nonnull key, const struct TxChangeList* _Nonnull reports)); +void store_unregister_observer(struct Store*_Nonnull store, const char* _Nonnull key); +int64_t store_entid_for_attribute(struct Store*_Nonnull store, const char*_Nonnull attr); +int64_t changelist_entry_at(const struct TxChange* _Nonnull report, size_t index); + +// Query +struct Query*_Nonnull store_query(struct Store*_Nonnull store, const char* _Nonnull query); +struct Result*_Nonnull store_value_for_attribute(struct Store*_Nonnull store, const int64_t entid, const char* _Nonnull attribute); + +// Query Variable Binding +void query_builder_bind_long(struct Query*_Nonnull query, const char* _Nonnull var, const int64_t value); +void query_builder_bind_ref(struct Query*_Nonnull query, const char* _Nonnull var, const int64_t value); +void query_builder_bind_ref_kw(struct Query*_Nonnull query, const char* _Nonnull var, const char* _Nonnull value); +void query_builder_bind_kw(struct Query*_Nonnull query, const char* _Nonnull var, const char* _Nonnull value); +void query_builder_bind_boolean(struct Query*_Nonnull query, const char* _Nonnull var, const int32_t value); +void query_builder_bind_double(struct Query*_Nonnull query, const char* _Nonnull var, const double value); +void query_builder_bind_timestamp(struct Query*_Nonnull query, const char* _Nonnull var, const int64_t value); +void query_builder_bind_string(struct Query*_Nonnull query, const char* _Nonnull var, const char* _Nonnull value); +void query_builder_bind_uuid(struct Query*_Nonnull query, const char* _Nonnull var, const uuid_t* _Nonnull value); + +// Query execution +struct Result*_Nonnull query_builder_execute(struct Query*_Nonnull query); +struct Result*_Nonnull query_builder_execute_scalar(struct Query*_Nonnull query); +struct Result*_Nonnull query_builder_execute_coll(struct Query*_Nonnull query); +struct Result*_Nonnull query_builder_execute_tuple(struct Query*_Nonnull query); + +// Query Result Processing +int64_t typed_value_as_long(struct TypedValue*_Nonnull value); +int64_t typed_value_as_entid(struct TypedValue*_Nonnull value); +const char* _Nonnull typed_value_as_kw(struct TypedValue*_Nonnull value); +int32_t typed_value_as_boolean(struct TypedValue*_Nonnull value); +double typed_value_as_double(struct TypedValue*_Nonnull value); +int64_t typed_value_as_timestamp(struct TypedValue*_Nonnull value); +const char* _Nonnull typed_value_as_string(struct TypedValue*_Nonnull value); +const uuid_t* _Nonnull typed_value_as_uuid(struct TypedValue*_Nonnull value); +enum ValueType typed_value_value_type(struct TypedValue*_Nonnull value); + +struct QueryResultRow* _Nullable row_at_index(struct QueryResultRows* _Nonnull rows, const int32_t index); +struct QueryRowsIterator* _Nonnull rows_iter(struct QueryResultRows* _Nonnull rows); +struct QueryResultRow* _Nullable rows_iter_next(struct QueryRowsIterator* _Nonnull iter); +struct QueryRowIterator* _Nonnull values_iter(struct QueryResultRow* _Nonnull row); +struct TypedValue* _Nullable values_iter_next(struct QueryRowIterator* _Nonnull iter); + +struct TypedValue* _Nonnull value_at_index(struct QueryResultRow* _Nonnull row, const int32_t index); +int64_t value_at_index_as_long(struct QueryResultRow* _Nonnull row, const int32_t index); +int64_t value_at_index_as_entid(struct QueryResultRow* _Nonnull row, const int32_t index); +const char* _Nonnull value_at_index_as_kw(struct QueryResultRow* _Nonnull row, const int32_t index); +int32_t value_at_index_as_boolean(struct QueryResultRow* _Nonnull row, const int32_t index); +double value_at_index_as_double(struct QueryResultRow* _Nonnull row, const int32_t index); +int64_t value_at_index_as_timestamp(struct QueryResultRow* _Nonnull row, const int32_t index); +const char* _Nonnull value_at_index_as_string(struct QueryResultRow* _Nonnull row, const int32_t index); +const uuid_t* _Nonnull value_at_index_as_uuid(struct QueryResultRow* _Nonnull row, const int32_t index); + +// Transaction change lists +const struct TxChange* _Nullable tx_change_list_entry_at(const struct TxChangeList* _Nonnull list, size_t index); + +#endif /* store_h */