@@ -4,7 +4,7 @@ use super::{CodegenTest, ExpectedCHeader, ExpectedRustTokens, ExpectedSwiftCode}
4
4
use proc_macro2:: TokenStream ;
5
5
use quote:: quote;
6
6
7
- /// Test code generation for Rust function that accepts a Result<T, E>
7
+ /// Test code generation for Rust function that accepts and returns a Result<T, E>
8
8
/// where T and E are Strings.
9
9
mod extern_rust_fn_result_string {
10
10
use super :: * ;
@@ -64,72 +64,6 @@ void __swift_bridge__$some_function(struct __private__ResultPtrAndPtr arg);
64
64
}
65
65
}
66
66
67
- /// Test code generation for Rust function that returns a Result<T, E>
68
- /// where T and E are Strings.
69
- mod extern_rust_fn_return_result_string {
70
- use super :: * ;
71
-
72
- fn bridge_module_tokens ( ) -> TokenStream {
73
- quote ! {
74
- mod ffi {
75
- extern "Rust" {
76
- fn some_function( ) -> Result <String , String >;
77
- }
78
- }
79
- }
80
- }
81
-
82
- fn expected_rust_tokens ( ) -> ExpectedRustTokens {
83
- ExpectedRustTokens :: Contains ( quote ! {
84
- #[ export_name = "__swift_bridge__$some_function" ]
85
- pub extern "C" fn __swift_bridge__some_function(
86
- ) -> swift_bridge:: result:: ResultPtrAndPtr {
87
- match super :: some_function( ) {
88
- Ok ( ok) => {
89
- swift_bridge:: result:: ResultPtrAndPtr {
90
- is_ok: true ,
91
- ok_or_err: swift_bridge:: string:: RustString ( ok) . box_into_raw( ) as * mut std:: ffi:: c_void
92
- }
93
- }
94
- Err ( err) => {
95
- swift_bridge:: result:: ResultPtrAndPtr {
96
- is_ok: false ,
97
- ok_or_err: swift_bridge:: string:: RustString ( err) . box_into_raw( ) as * mut std:: ffi:: c_void
98
- }
99
- }
100
- }
101
- }
102
- } )
103
- }
104
-
105
- fn expected_swift_code ( ) -> ExpectedSwiftCode {
106
- ExpectedSwiftCode :: ContainsAfterTrim (
107
- r#"
108
- public func some_function() throws -> RustString {
109
- try { let val = __swift_bridge__$some_function(); if val.is_ok { return RustString(ptr: val.ok_or_err!) } else { throw RustString(ptr: val.ok_or_err!) } }()
110
- }
111
- "# ,
112
- )
113
- }
114
-
115
- const EXPECTED_C_HEADER : ExpectedCHeader = ExpectedCHeader :: ExactAfterTrim (
116
- r#"
117
- struct __private__ResultPtrAndPtr __swift_bridge__$some_function(void);
118
- "# ,
119
- ) ;
120
-
121
- #[ test]
122
- fn extern_rust_fn_return_result_string ( ) {
123
- CodegenTest {
124
- bridge_module : bridge_module_tokens ( ) . into ( ) ,
125
- expected_rust_tokens : expected_rust_tokens ( ) ,
126
- expected_swift_code : expected_swift_code ( ) ,
127
- expected_c_header : EXPECTED_C_HEADER ,
128
- }
129
- . test ( ) ;
130
- }
131
- }
132
-
133
67
/// Test code generation for Rust function that accepts a Result<T, E> where T and E are
134
68
/// opaque Rust types.
135
69
mod extern_rust_fn_arg_result_opaque_rust {
@@ -515,7 +449,7 @@ public func some_function() throws -> SomeOkType {
515
449
r#"
516
450
typedef enum __swift_bridge__$ResultSomeOkTypeAndSomeErrEnum$Tag {__swift_bridge__$ResultSomeOkTypeAndSomeErrEnum$ResultOk, __swift_bridge__$ResultSomeOkTypeAndSomeErrEnum$ResultErr} __swift_bridge__$ResultSomeOkTypeAndSomeErrEnum$Tag;
517
451
union __swift_bridge__$ResultSomeOkTypeAndSomeErrEnum$Fields {void* ok; struct __swift_bridge__$SomeErrEnum err;};
518
- typedef struct __swift_bridge__$ResultSomeOkTypeAndSomeErrEnum{__swift_bridge__$ResultSomeOkTypeAndSomeErrEnum$Tag tag; union __swift_bridge__$ResultSomeOkTypeAndSomeErrEnum$Fields payload;} __swift_bridge__$ResultSomeOkTypeAndSomeErrEnum;
452
+ typedef struct __swift_bridge__$ResultSomeOkTypeAndSomeErrEnum{__swift_bridge__$ResultSomeOkTypeAndSomeErrEnum$Tag tag; union __swift_bridge__$ResultSomeOkTypeAndSomeErrEnum$Fields payload;} __swift_bridge__$ResultSomeOkTypeAndSomeErrEnum;
519
453
"# ,
520
454
r#"struct __swift_bridge__$ResultSomeOkTypeAndSomeErrEnum __swift_bridge__$some_function(void)"# ,
521
455
] )
@@ -597,7 +531,7 @@ public func some_function() throws -> SomeOkEnum {
597
531
r#"
598
532
typedef enum __swift_bridge__$ResultSomeOkEnumAndSomeErrType$Tag {__swift_bridge__$ResultSomeOkEnumAndSomeErrType$ResultOk, __swift_bridge__$ResultSomeOkEnumAndSomeErrType$ResultErr} __swift_bridge__$ResultSomeOkEnumAndSomeErrType$Tag;
599
533
union __swift_bridge__$ResultSomeOkEnumAndSomeErrType$Fields {struct __swift_bridge__$SomeOkEnum ok; void* err;};
600
- typedef struct __swift_bridge__$ResultSomeOkEnumAndSomeErrType{__swift_bridge__$ResultSomeOkEnumAndSomeErrType$Tag tag; union __swift_bridge__$ResultSomeOkEnumAndSomeErrType$Fields payload;} __swift_bridge__$ResultSomeOkEnumAndSomeErrType;
534
+ typedef struct __swift_bridge__$ResultSomeOkEnumAndSomeErrType{__swift_bridge__$ResultSomeOkEnumAndSomeErrType$Tag tag; union __swift_bridge__$ResultSomeOkEnumAndSomeErrType$Fields payload;} __swift_bridge__$ResultSomeOkEnumAndSomeErrType;
601
535
"# ,
602
536
r#"struct __swift_bridge__$ResultSomeOkEnumAndSomeErrType __swift_bridge__$some_function(void)"# ,
603
537
] )
@@ -672,7 +606,7 @@ public func some_function() throws -> () {
672
606
r#"
673
607
typedef enum __swift_bridge__$ResultVoidAndSomeErrEnum$Tag {__swift_bridge__$ResultVoidAndSomeErrEnum$ResultOk, __swift_bridge__$ResultVoidAndSomeErrEnum$ResultErr} __swift_bridge__$ResultVoidAndSomeErrEnum$Tag;
674
608
union __swift_bridge__$ResultVoidAndSomeErrEnum$Fields {struct __swift_bridge__$SomeErrEnum err;};
675
- typedef struct __swift_bridge__$ResultVoidAndSomeErrEnum{__swift_bridge__$ResultVoidAndSomeErrEnum$Tag tag; union __swift_bridge__$ResultVoidAndSomeErrEnum$Fields payload;} __swift_bridge__$ResultVoidAndSomeErrEnum;
609
+ typedef struct __swift_bridge__$ResultVoidAndSomeErrEnum{__swift_bridge__$ResultVoidAndSomeErrEnum$Tag tag; union __swift_bridge__$ResultVoidAndSomeErrEnum$Fields payload;} __swift_bridge__$ResultVoidAndSomeErrEnum;
676
610
"# ,
677
611
r#"struct __swift_bridge__$ResultVoidAndSomeErrEnum __swift_bridge__$some_function(void)"# ,
678
612
] )
@@ -755,7 +689,7 @@ public func some_function() throws -> (Int32, UInt32) {
755
689
r#"
756
690
typedef enum __swift_bridge__$ResultTupleI32U32AndSomeErrEnum$Tag {__swift_bridge__$ResultTupleI32U32AndSomeErrEnum$ResultOk, __swift_bridge__$ResultTupleI32U32AndSomeErrEnum$ResultErr} __swift_bridge__$ResultTupleI32U32AndSomeErrEnum$Tag;
757
691
union __swift_bridge__$ResultTupleI32U32AndSomeErrEnum$Fields {struct __swift_bridge__$tuple$I32U32 ok; struct __swift_bridge__$SomeErrEnum err;};
758
- typedef struct __swift_bridge__$ResultTupleI32U32AndSomeErrEnum{__swift_bridge__$ResultTupleI32U32AndSomeErrEnum$Tag tag; union __swift_bridge__$ResultTupleI32U32AndSomeErrEnum$Fields payload;} __swift_bridge__$ResultTupleI32U32AndSomeErrEnum;
692
+ typedef struct __swift_bridge__$ResultTupleI32U32AndSomeErrEnum{__swift_bridge__$ResultTupleI32U32AndSomeErrEnum$Tag tag; union __swift_bridge__$ResultTupleI32U32AndSomeErrEnum$Fields payload;} __swift_bridge__$ResultTupleI32U32AndSomeErrEnum;
759
693
"# ,
760
694
r#"struct __swift_bridge__$ResultTupleI32U32AndSomeErrEnum __swift_bridge__$some_function(void)"# ,
761
695
r#"typedef struct __swift_bridge__$tuple$I32U32 { int32_t _0; uint32_t _1; } __swift_bridge__$tuple$I32U32;"# ,
0 commit comments