Skip to content

Commit 5d80282

Browse files
committed
get Swift errors below 100
1 parent 55f3d30 commit 5d80282

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/generators/opaque_struct_generator.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ def generate_opaque_struct(self, struct_name, struct_details, all_type_details={
5959
constructor_argument_prep += current_prep
6060
elif current_argument_details.rust_obj == 'LDK' + current_argument_details.swift_type:
6161
passed_argument_name += '.cOpaqueStruct!'
62+
elif current_argument_details.rust_obj == 'LDKC' + current_argument_details.swift_type:
63+
passed_argument_name += '.cOpaqueStruct!'
6264

6365
swift_arguments.append(f'{argument_name}: {current_argument_details.swift_type}')
6466
native_arguments.append(f'{passed_argument_name}')
@@ -134,6 +136,9 @@ def generate_opaque_struct(self, struct_name, struct_details, all_type_details={
134136
if current_return_type.rust_obj is None and current_return_type.swift_type.startswith('['):
135137
current_swift_return_type = current_return_type.swift_raw_type
136138

139+
if current_return_type.swift_type.startswith('[') and not current_return_type.is_native_primitive and not current_return_type.swift_type.startswith('[UInt'):
140+
current_swift_return_type = current_return_type.swift_raw_type.replace('[', '[LDK')
141+
137142
current_replacement = current_replacement.replace('func methodName(', f'func {current_method_name}(')
138143

139144
if is_clone_method:
@@ -181,6 +186,8 @@ def generate_opaque_struct(self, struct_name, struct_details, all_type_details={
181186
# native_arguments.append(f'{passed_argument_name}')
182187
if current_argument_details.rust_obj == 'LDK' + current_argument_details.swift_type and not current_argument_details.is_ptr:
183188
native_arguments.append(f'{passed_argument_name}.cOpaqueStruct!')
189+
elif current_argument_details.rust_obj == 'LDKC' + current_argument_details.swift_type and not current_argument_details.is_ptr:
190+
native_arguments.append(f'{passed_argument_name}.cOpaqueStruct!')
184191
elif current_argument_details.rust_obj is not None and current_argument_details.rust_obj.startswith(
185192
'LDK') and current_argument_details.swift_type.startswith('['):
186193
native_arguments.append(f'Bindings.new_{current_argument_details.rust_obj}(array: {passed_argument_name})')

src/swift_type_mapper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ def map_types_to_swift(fn_arg, ret_arr_len, java_c_types_none_allowed, tuple_typ
258258
else:
259259
c_ty = language_constants.ptr_c_ty
260260
java_ty = language_constants.ptr_native_ty
261-
swift_type = type_match.replace("LDKCResult", "Result").replace("LDK", "")
261+
swift_type = type_match.replace("LDKCResult", "Result").replace("LDKCOption", "Option").replace("LDK", "")
262262
fn_arg = name_match
263263
rust_obj = type_match
264264
take_by_ptr = True

0 commit comments

Comments
 (0)