Created
April 11, 2022 20:09
-
-
Save bendk/3f76a0a02e469cc6a4658a205e8e9f1f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff '--color=auto' -du v91.0.1/nimbusFFI.h v91.1.0/nimbusFFI.h | |
--- v91.0.1/nimbusFFI.h 2022-04-11 16:07:18.560552019 -0400 | |
+++ v91.1.0/nimbusFFI.h 2022-04-11 16:07:07.692544443 -0400 | |
@@ -46,87 +46,115 @@ | |
// ⚠️ increment the version suffix in all instances of UNIFFI_SHARED_HEADER_V4 in this file. ⚠️ | |
#endif // def UNIFFI_SHARED_H | |
-void ffi_nimbus_59ee_NimbusClient_object_free( | |
+void ffi_nimbus_302d_NimbusClient_object_free( | |
void*_Nonnull ptr, | |
RustCallStatus *_Nonnull out_status | |
); | |
-void*_Nonnull nimbus_59ee_NimbusClient_new( | |
+void*_Nonnull nimbus_302d_NimbusClient_new( | |
RustBuffer app_ctx,RustBuffer dbpath,RustBuffer remote_settings_config,RustBuffer available_randomization_units, | |
RustCallStatus *_Nonnull out_status | |
); | |
-void nimbus_59ee_NimbusClient_initialize( | |
+void nimbus_302d_NimbusClient_initialize( | |
void*_Nonnull ptr, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer nimbus_59ee_NimbusClient_get_experiment_branch( | |
+RustBuffer nimbus_302d_NimbusClient_get_experiment_branch( | |
void*_Nonnull ptr,RustBuffer id, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer nimbus_59ee_NimbusClient_get_feature_config_variables( | |
+RustBuffer nimbus_302d_NimbusClient_get_feature_config_variables( | |
void*_Nonnull ptr,RustBuffer feature_id, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer nimbus_59ee_NimbusClient_get_experiment_branches( | |
+RustBuffer nimbus_302d_NimbusClient_get_experiment_branches( | |
void*_Nonnull ptr,RustBuffer experiment_slug, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer nimbus_59ee_NimbusClient_get_active_experiments( | |
+RustBuffer nimbus_302d_NimbusClient_get_active_experiments( | |
void*_Nonnull ptr, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer nimbus_59ee_NimbusClient_get_available_experiments( | |
+RustBuffer nimbus_302d_NimbusClient_get_available_experiments( | |
void*_Nonnull ptr, | |
RustCallStatus *_Nonnull out_status | |
); | |
-int8_t nimbus_59ee_NimbusClient_get_global_user_participation( | |
+int8_t nimbus_302d_NimbusClient_get_global_user_participation( | |
void*_Nonnull ptr, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer nimbus_59ee_NimbusClient_set_global_user_participation( | |
+RustBuffer nimbus_302d_NimbusClient_set_global_user_participation( | |
void*_Nonnull ptr,int8_t opt_in, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer nimbus_59ee_NimbusClient_update_experiments( | |
+RustBuffer nimbus_302d_NimbusClient_update_experiments( | |
void*_Nonnull ptr, | |
RustCallStatus *_Nonnull out_status | |
); | |
-void nimbus_59ee_NimbusClient_fetch_experiments( | |
+void nimbus_302d_NimbusClient_fetch_experiments( | |
void*_Nonnull ptr, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer nimbus_59ee_NimbusClient_apply_pending_experiments( | |
+RustBuffer nimbus_302d_NimbusClient_apply_pending_experiments( | |
void*_Nonnull ptr, | |
RustCallStatus *_Nonnull out_status | |
); | |
-void nimbus_59ee_NimbusClient_set_experiments_locally( | |
+void nimbus_302d_NimbusClient_set_experiments_locally( | |
void*_Nonnull ptr,RustBuffer experiments_json, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer nimbus_59ee_NimbusClient_opt_in_with_branch( | |
+RustBuffer nimbus_302d_NimbusClient_opt_in_with_branch( | |
void*_Nonnull ptr,RustBuffer experiment_slug,RustBuffer branch, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer nimbus_59ee_NimbusClient_opt_out( | |
+RustBuffer nimbus_302d_NimbusClient_opt_out( | |
void*_Nonnull ptr,RustBuffer experiment_slug, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer nimbus_59ee_NimbusClient_reset_telemetry_identifiers( | |
+RustBuffer nimbus_302d_NimbusClient_reset_telemetry_identifiers( | |
void*_Nonnull ptr,RustBuffer new_randomization_units, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer ffi_nimbus_59ee_rustbuffer_alloc( | |
+void*_Nonnull nimbus_302d_NimbusClient_create_targeting_helper( | |
+ void*_Nonnull ptr,RustBuffer additional_context, | |
+ RustCallStatus *_Nonnull out_status | |
+ ); | |
+void*_Nonnull nimbus_302d_NimbusClient_create_string_helper( | |
+ void*_Nonnull ptr,RustBuffer additional_context, | |
+ RustCallStatus *_Nonnull out_status | |
+ ); | |
+void ffi_nimbus_302d_NimbusTargetingHelper_object_free( | |
+ void*_Nonnull ptr, | |
+ RustCallStatus *_Nonnull out_status | |
+ ); | |
+int8_t nimbus_302d_NimbusTargetingHelper_eval_jexl( | |
+ void*_Nonnull ptr,RustBuffer expression, | |
+ RustCallStatus *_Nonnull out_status | |
+ ); | |
+void ffi_nimbus_302d_NimbusStringHelper_object_free( | |
+ void*_Nonnull ptr, | |
+ RustCallStatus *_Nonnull out_status | |
+ ); | |
+RustBuffer nimbus_302d_NimbusStringHelper_string_format( | |
+ void*_Nonnull ptr,RustBuffer template,RustBuffer uuid, | |
+ RustCallStatus *_Nonnull out_status | |
+ ); | |
+RustBuffer nimbus_302d_NimbusStringHelper_get_uuid( | |
+ void*_Nonnull ptr,RustBuffer template, | |
+ RustCallStatus *_Nonnull out_status | |
+ ); | |
+RustBuffer ffi_nimbus_302d_rustbuffer_alloc( | |
int32_t size, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer ffi_nimbus_59ee_rustbuffer_from_bytes( | |
+RustBuffer ffi_nimbus_302d_rustbuffer_from_bytes( | |
ForeignBytes bytes, | |
RustCallStatus *_Nonnull out_status | |
); | |
-void ffi_nimbus_59ee_rustbuffer_free( | |
+void ffi_nimbus_302d_rustbuffer_free( | |
RustBuffer buf, | |
RustCallStatus *_Nonnull out_status | |
); | |
-RustBuffer ffi_nimbus_59ee_rustbuffer_reserve( | |
+RustBuffer ffi_nimbus_302d_rustbuffer_reserve( | |
RustBuffer buf,int32_t additional, | |
RustCallStatus *_Nonnull out_status | |
); | |
diff '--color=auto' -du v91.0.1/nimbus.swift v91.1.0/nimbus.swift | |
--- v91.0.1/nimbus.swift 2022-04-11 16:07:18.560552019 -0400 | |
+++ v91.1.0/nimbus.swift 2022-04-11 16:07:07.692544443 -0400 | |
@@ -19,13 +19,13 @@ | |
} | |
static func from(_ ptr: UnsafeBufferPointer<UInt8>) -> RustBuffer { | |
- try! rustCall { ffi_nimbus_59ee_rustbuffer_from_bytes(ForeignBytes(bufferPointer: ptr), $0) } | |
+ try! rustCall { ffi_nimbus_302d_rustbuffer_from_bytes(ForeignBytes(bufferPointer: ptr), $0) } | |
} | |
// Frees the buffer in place. | |
// The buffer must not be used after this is called. | |
func deallocate() { | |
- try! rustCall { ffi_nimbus_59ee_rustbuffer_free(self, $0) } | |
+ try! rustCall { ffi_nimbus_302d_rustbuffer_free(self, $0) } | |
} | |
} | |
@@ -444,6 +444,8 @@ | |
func optInWithBranch( experimentSlug: String, branch: String ) throws -> [EnrollmentChangeEvent] | |
func optOut( experimentSlug: String ) throws -> [EnrollmentChangeEvent] | |
func resetTelemetryIdentifiers( newRandomizationUnits: AvailableRandomizationUnits ) throws -> [EnrollmentChangeEvent] | |
+ func createTargetingHelper( additionalContext: String? ) throws -> NimbusTargetingHelper | |
+ func createStringHelper( additionalContext: String? ) throws -> NimbusStringHelper | |
} | |
@@ -462,12 +464,12 @@ | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_new(appCtx.lower(), dbpath.lower(), FfiConverterOptionRecordRemoteSettingsConfig.lower(remoteSettingsConfig), availableRandomizationUnits.lower() , $0) | |
+ nimbus_302d_NimbusClient_new(appCtx.lower(), dbpath.lower(), FfiConverterOptionRecordRemoteSettingsConfig.lower(remoteSettingsConfig), availableRandomizationUnits.lower() , $0) | |
}) | |
} | |
deinit { | |
- try! rustCall { ffi_nimbus_59ee_NimbusClient_object_free(pointer, $0) } | |
+ try! rustCall { ffi_nimbus_302d_NimbusClient_object_free(pointer, $0) } | |
} | |
@@ -477,7 +479,7 @@ | |
try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_initialize(self.pointer, $0 | |
+ nimbus_302d_NimbusClient_initialize(self.pointer, $0 | |
) | |
} | |
} | |
@@ -485,7 +487,7 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_get_experiment_branch(self.pointer, id.lower() , $0 | |
+ nimbus_302d_NimbusClient_get_experiment_branch(self.pointer, id.lower() , $0 | |
) | |
} | |
return try FfiConverterOptionString.lift(_retval) | |
@@ -494,7 +496,7 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_get_feature_config_variables(self.pointer, featureId.lower() , $0 | |
+ nimbus_302d_NimbusClient_get_feature_config_variables(self.pointer, featureId.lower() , $0 | |
) | |
} | |
return try FfiConverterOptionString.lift(_retval) | |
@@ -503,7 +505,7 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_get_experiment_branches(self.pointer, experimentSlug.lower() , $0 | |
+ nimbus_302d_NimbusClient_get_experiment_branches(self.pointer, experimentSlug.lower() , $0 | |
) | |
} | |
return try FfiConverterSequenceRecordExperimentBranch.lift(_retval) | |
@@ -512,7 +514,7 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_get_active_experiments(self.pointer, $0 | |
+ nimbus_302d_NimbusClient_get_active_experiments(self.pointer, $0 | |
) | |
} | |
return try FfiConverterSequenceRecordEnrolledExperiment.lift(_retval) | |
@@ -521,7 +523,7 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_get_available_experiments(self.pointer, $0 | |
+ nimbus_302d_NimbusClient_get_available_experiments(self.pointer, $0 | |
) | |
} | |
return try FfiConverterSequenceRecordAvailableExperiment.lift(_retval) | |
@@ -530,7 +532,7 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_get_global_user_participation(self.pointer, $0 | |
+ nimbus_302d_NimbusClient_get_global_user_participation(self.pointer, $0 | |
) | |
} | |
return try Bool.lift(_retval) | |
@@ -539,7 +541,7 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_set_global_user_participation(self.pointer, optIn.lower() , $0 | |
+ nimbus_302d_NimbusClient_set_global_user_participation(self.pointer, optIn.lower() , $0 | |
) | |
} | |
return try FfiConverterSequenceRecordEnrollmentChangeEvent.lift(_retval) | |
@@ -548,7 +550,7 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_update_experiments(self.pointer, $0 | |
+ nimbus_302d_NimbusClient_update_experiments(self.pointer, $0 | |
) | |
} | |
return try FfiConverterSequenceRecordEnrollmentChangeEvent.lift(_retval) | |
@@ -557,7 +559,7 @@ | |
try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_fetch_experiments(self.pointer, $0 | |
+ nimbus_302d_NimbusClient_fetch_experiments(self.pointer, $0 | |
) | |
} | |
} | |
@@ -565,7 +567,7 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_apply_pending_experiments(self.pointer, $0 | |
+ nimbus_302d_NimbusClient_apply_pending_experiments(self.pointer, $0 | |
) | |
} | |
return try FfiConverterSequenceRecordEnrollmentChangeEvent.lift(_retval) | |
@@ -574,7 +576,7 @@ | |
try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_set_experiments_locally(self.pointer, experimentsJson.lower() , $0 | |
+ nimbus_302d_NimbusClient_set_experiments_locally(self.pointer, experimentsJson.lower() , $0 | |
) | |
} | |
} | |
@@ -582,7 +584,7 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_opt_in_with_branch(self.pointer, experimentSlug.lower(), branch.lower() , $0 | |
+ nimbus_302d_NimbusClient_opt_in_with_branch(self.pointer, experimentSlug.lower(), branch.lower() , $0 | |
) | |
} | |
return try FfiConverterSequenceRecordEnrollmentChangeEvent.lift(_retval) | |
@@ -591,7 +593,7 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_opt_out(self.pointer, experimentSlug.lower() , $0 | |
+ nimbus_302d_NimbusClient_opt_out(self.pointer, experimentSlug.lower() , $0 | |
) | |
} | |
return try FfiConverterSequenceRecordEnrollmentChangeEvent.lift(_retval) | |
@@ -600,11 +602,29 @@ | |
let _retval = try | |
rustCallWithError(NimbusError.self) { | |
- nimbus_59ee_NimbusClient_reset_telemetry_identifiers(self.pointer, newRandomizationUnits.lower() , $0 | |
+ nimbus_302d_NimbusClient_reset_telemetry_identifiers(self.pointer, newRandomizationUnits.lower() , $0 | |
) | |
} | |
return try FfiConverterSequenceRecordEnrollmentChangeEvent.lift(_retval) | |
} | |
+ public func createTargetingHelper( additionalContext: String? = nil ) throws -> NimbusTargetingHelper { | |
+ let _retval = try | |
+ rustCallWithError(NimbusError.self) { | |
+ | |
+ nimbus_302d_NimbusClient_create_targeting_helper(self.pointer, FfiConverterOptionJsonObject.lower(additionalContext) , $0 | |
+ ) | |
+} | |
+ return try NimbusTargetingHelper.lift(_retval) | |
+ } | |
+ public func createStringHelper( additionalContext: String? = nil ) throws -> NimbusStringHelper { | |
+ let _retval = try | |
+ rustCallWithError(NimbusError.self) { | |
+ | |
+ nimbus_302d_NimbusClient_create_string_helper(self.pointer, FfiConverterOptionJsonObject.lower(additionalContext) , $0 | |
+ ) | |
+} | |
+ return try NimbusStringHelper.lift(_retval) | |
+ } | |
} | |
@@ -644,6 +664,158 @@ | |
// """ | |
extension NimbusClient : ViaFfi, Serializable {} | |
+ | |
+public protocol NimbusTargetingHelperProtocol { | |
+ func evalJexl( expression: String ) throws -> Bool | |
+ | |
+} | |
+ | |
+public class NimbusTargetingHelper: NimbusTargetingHelperProtocol { | |
+ fileprivate let pointer: UnsafeMutableRawPointer | |
+ | |
+ // TODO: We'd like this to be `private` but for Swifty reasons, | |
+ // we can't implement `ViaFfi` without making this `required` and we can't | |
+ // make it `required` without making it `public`. | |
+ required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { | |
+ self.pointer = pointer | |
+ } | |
+ | |
+ deinit { | |
+ try! rustCall { ffi_nimbus_302d_NimbusTargetingHelper_object_free(pointer, $0) } | |
+ } | |
+ | |
+ | |
+ | |
+ | |
+ public func evalJexl( expression: String ) throws -> Bool { | |
+ let _retval = try | |
+ rustCallWithError(NimbusError.self) { | |
+ | |
+ nimbus_302d_NimbusTargetingHelper_eval_jexl(self.pointer, expression.lower() , $0 | |
+ ) | |
+} | |
+ return try Bool.lift(_retval) | |
+ } | |
+ | |
+} | |
+ | |
+ | |
+fileprivate extension NimbusTargetingHelper { | |
+ typealias FfiType = UnsafeMutableRawPointer | |
+ | |
+ static func read(from buf: Reader) throws -> Self { | |
+ let v: UInt64 = try buf.readInt() | |
+ // The Rust code won't compile if a pointer won't fit in a UInt64. | |
+ // We have to go via `UInt` because that's the thing that's the size of a pointer. | |
+ let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) | |
+ if (ptr == nil) { | |
+ throw UniffiInternalError.unexpectedNullPointer | |
+ } | |
+ return try self.lift(ptr!) | |
+ } | |
+ | |
+ func write(into buf: Writer) { | |
+ // This fiddling is because `Int` is the thing that's the same size as a pointer. | |
+ // The Rust code won't compile if a pointer won't fit in a `UInt64`. | |
+ buf.writeInt(UInt64(bitPattern: Int64(Int(bitPattern: self.lower())))) | |
+ } | |
+ | |
+ static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Self { | |
+ return Self(unsafeFromRawPointer: pointer) | |
+ } | |
+ | |
+ func lower() -> UnsafeMutableRawPointer { | |
+ return self.pointer | |
+ } | |
+} | |
+ | |
+// Ideally this would be `fileprivate`, but Swift says: | |
+// """ | |
+// 'private' modifier cannot be used with extensions that declare protocol conformances | |
+// """ | |
+extension NimbusTargetingHelper : ViaFfi, Serializable {} | |
+ | |
+ | |
+public protocol NimbusStringHelperProtocol { | |
+ func stringFormat( template: String, uuid: String? ) -> String | |
+ func getUuid( template: String ) -> String? | |
+ | |
+} | |
+ | |
+public class NimbusStringHelper: NimbusStringHelperProtocol { | |
+ fileprivate let pointer: UnsafeMutableRawPointer | |
+ | |
+ // TODO: We'd like this to be `private` but for Swifty reasons, | |
+ // we can't implement `ViaFfi` without making this `required` and we can't | |
+ // make it `required` without making it `public`. | |
+ required init(unsafeFromRawPointer pointer: UnsafeMutableRawPointer) { | |
+ self.pointer = pointer | |
+ } | |
+ | |
+ deinit { | |
+ try! rustCall { ffi_nimbus_302d_NimbusStringHelper_object_free(pointer, $0) } | |
+ } | |
+ | |
+ | |
+ | |
+ | |
+ public func stringFormat( template: String, uuid: String? = nil ) -> String { | |
+ let _retval = try! | |
+ rustCall() { | |
+ | |
+ nimbus_302d_NimbusStringHelper_string_format(self.pointer, template.lower(), FfiConverterOptionString.lower(uuid) , $0 | |
+ ) | |
+} | |
+ return try! String.lift(_retval) | |
+ } | |
+ public func getUuid( template: String ) -> String? { | |
+ let _retval = try! | |
+ rustCall() { | |
+ | |
+ nimbus_302d_NimbusStringHelper_get_uuid(self.pointer, template.lower() , $0 | |
+ ) | |
+} | |
+ return try! FfiConverterOptionString.lift(_retval) | |
+ } | |
+ | |
+} | |
+ | |
+ | |
+fileprivate extension NimbusStringHelper { | |
+ typealias FfiType = UnsafeMutableRawPointer | |
+ | |
+ static func read(from buf: Reader) throws -> Self { | |
+ let v: UInt64 = try buf.readInt() | |
+ // The Rust code won't compile if a pointer won't fit in a UInt64. | |
+ // We have to go via `UInt` because that's the thing that's the size of a pointer. | |
+ let ptr = UnsafeMutableRawPointer(bitPattern: UInt(truncatingIfNeeded: v)) | |
+ if (ptr == nil) { | |
+ throw UniffiInternalError.unexpectedNullPointer | |
+ } | |
+ return try self.lift(ptr!) | |
+ } | |
+ | |
+ func write(into buf: Writer) { | |
+ // This fiddling is because `Int` is the thing that's the same size as a pointer. | |
+ // The Rust code won't compile if a pointer won't fit in a `UInt64`. | |
+ buf.writeInt(UInt64(bitPattern: Int64(Int(bitPattern: self.lower())))) | |
+ } | |
+ | |
+ static func lift(_ pointer: UnsafeMutableRawPointer) throws -> Self { | |
+ return Self(unsafeFromRawPointer: pointer) | |
+ } | |
+ | |
+ func lower() -> UnsafeMutableRawPointer { | |
+ return self.pointer | |
+ } | |
+} | |
+ | |
+// Ideally this would be `fileprivate`, but Swift says: | |
+// """ | |
+// 'private' modifier cannot be used with extensions that declare protocol conformances | |
+// """ | |
+extension NimbusStringHelper : ViaFfi, Serializable {} | |
+ | |
public struct AppContext { | |
public var appName: String | |
public var appId: String | |
@@ -1418,6 +1590,23 @@ | |
extension NimbusError: Equatable, Hashable {} | |
extension NimbusError: Error { } | |
+fileprivate struct FfiConverterTypeJsonObject { | |
+ fileprivate static func read(_ buf: Reader) throws -> String { | |
+ return try String.read(from: buf) | |
+ } | |
+ | |
+ fileprivate static func write(_ value: String, _ buf: Writer) { | |
+ return value.write(into: buf) | |
+ } | |
+ | |
+ fileprivate static func lift(_ value: RustBuffer) throws -> String { | |
+ return try String.lift(value) | |
+ } | |
+ | |
+ fileprivate static func lower(_ value: String) -> RustBuffer { | |
+ return value.lower() | |
+ } | |
+} | |
extension Int8: Primitive, ViaFfi { | |
fileprivate static func read(from buf: Reader) throws -> Self { | |
return try self.lift(buf.readInt()) | |
@@ -1501,6 +1690,8 @@ | |
} | |
} | |
// Helper code for NimbusClient class is found in ObjectTemplate.swift | |
+// Helper code for NimbusStringHelper class is found in ObjectTemplate.swift | |
+// Helper code for NimbusTargetingHelper class is found in ObjectTemplate.swift | |
// Helper code for AppContext record is found in RecordTemplate.swift | |
// Helper code for AvailableExperiment record is found in RecordTemplate.swift | |
// Helper code for AvailableRandomizationUnits record is found in RecordTemplate.swift | |
@@ -1575,6 +1766,22 @@ | |
} | |
} | |
+fileprivate enum FfiConverterOptionJsonObject: FfiConverterUsingByteBuffer { | |
+ typealias SwiftType = String? | |
+ | |
+ static func write(_ value: SwiftType, into buf: Writer) { | |
+ FfiConverterOptional.write(value, into: buf) { item, buf in | |
+ FfiConverterTypeJsonObject.write(item, buf) | |
+ } | |
+ } | |
+ | |
+ static func read(from buf: Reader) throws -> SwiftType { | |
+ try FfiConverterOptional.read(from: buf) { buf in | |
+ try FfiConverterTypeJsonObject.read(buf) | |
+ } | |
+ } | |
+} | |
+ | |
fileprivate enum FfiConverterSequenceString: FfiConverterUsingByteBuffer { | |
typealias SwiftType = [String] | |
@@ -1672,6 +1879,7 @@ | |
} | |
} | |
} | |
+// Helper code for JsonObject is found in CustomType.py | |
/** |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment