@@ -40,22 +40,25 @@ impl Workspace {
4040 & self ,
4141 params : ISupportsFeatureParams ,
4242 ) -> Result < ISupportsFeatureResult , Error > {
43- let params: SupportsFeatureParams = params. into_serde ( ) . map_err ( into_error) ?;
43+ let params: SupportsFeatureParams =
44+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
4445 let result = self . inner . supports_feature ( params) . map_err ( into_error) ?;
45- JsValue :: from_serde ( & result)
46+ to_value ( & result)
4647 . map ( ISupportsFeatureResult :: from)
4748 . map_err ( into_error)
4849 }
4950
5051 #[ wasm_bindgen( js_name = updateSettings) ]
5152 pub fn update_settings ( & self , params : IUpdateSettingsParams ) -> Result < ( ) , Error > {
52- let params: UpdateSettingsParams = params. into_serde ( ) . map_err ( into_error) ?;
53+ let params: UpdateSettingsParams =
54+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
5355 self . inner . update_settings ( params) . map_err ( into_error)
5456 }
5557
5658 #[ wasm_bindgen( js_name = openFile) ]
5759 pub fn open_file ( & self , params : IOpenFileParams ) -> Result < ( ) , Error > {
58- let params: OpenFileParams = params. into_serde ( ) . map_err ( into_error) ?;
60+ let params: OpenFileParams =
61+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
5962 self . inner . open_file ( params) . map_err ( into_error)
6063 }
6164
@@ -64,9 +67,10 @@ impl Workspace {
6467 & self ,
6568 params : IGetSyntaxTreeParams ,
6669 ) -> Result < IGetSyntaxTreeResult , Error > {
67- let params: GetSyntaxTreeParams = params. into_serde ( ) . map_err ( into_error) ?;
70+ let params: GetSyntaxTreeParams =
71+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
6872 let result = self . inner . get_syntax_tree ( params) . map_err ( into_error) ?;
69- JsValue :: from_serde ( & result)
73+ to_value ( & result)
7074 . map ( IGetSyntaxTreeResult :: from)
7175 . map_err ( into_error)
7276 }
@@ -76,27 +80,31 @@ impl Workspace {
7680 & self ,
7781 params : IGetControlFlowGraphParams ,
7882 ) -> Result < String , Error > {
79- let params: GetControlFlowGraphParams = params. into_serde ( ) . map_err ( into_error) ?;
83+ let params: GetControlFlowGraphParams =
84+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
8085 self . inner
8186 . get_control_flow_graph ( params)
8287 . map_err ( into_error)
8388 }
8489
8590 #[ wasm_bindgen( js_name = getFormatterIr) ]
8691 pub fn get_formatter_ir ( & self , params : IGetFormatterIRParams ) -> Result < String , Error > {
87- let params: GetFormatterIRParams = params. into_serde ( ) . map_err ( into_error) ?;
92+ let params: GetFormatterIRParams =
93+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
8894 self . inner . get_formatter_ir ( params) . map_err ( into_error)
8995 }
9096
9197 #[ wasm_bindgen( js_name = changeFile) ]
9298 pub fn change_file ( & self , params : IChangeFileParams ) -> Result < ( ) , Error > {
93- let params: ChangeFileParams = params. into_serde ( ) . map_err ( into_error) ?;
99+ let params: ChangeFileParams =
100+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
94101 self . inner . change_file ( params) . map_err ( into_error)
95102 }
96103
97104 #[ wasm_bindgen( js_name = closeFile) ]
98105 pub fn close_file ( & self , params : ICloseFileParams ) -> Result < ( ) , Error > {
99- let params: CloseFileParams = params. into_serde ( ) . map_err ( into_error) ?;
106+ let params: CloseFileParams =
107+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
100108 self . inner . close_file ( params) . map_err ( into_error)
101109 }
102110
@@ -105,57 +113,70 @@ impl Workspace {
105113 & self ,
106114 params : IPullDiagnosticsParams ,
107115 ) -> Result < IPullDiagnosticsResult , Error > {
108- let params: PullDiagnosticsParams = params. into_serde ( ) . map_err ( into_error) ?;
116+ let params: PullDiagnosticsParams =
117+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
109118 let result = self . inner . pull_diagnostics ( params) . map_err ( into_error) ?;
110- JsValue :: from_serde ( & result)
119+ to_value ( & result)
111120 . map ( IPullDiagnosticsResult :: from)
112121 . map_err ( into_error)
113122 }
114123
115124 #[ wasm_bindgen( js_name = pullActions) ]
116125 pub fn pull_actions ( & self , params : IPullActionsParams ) -> Result < IPullActionsResult , Error > {
117- let params: PullActionsParams = params. into_serde ( ) . map_err ( into_error) ?;
126+ let params: PullActionsParams =
127+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
118128 let result = self . inner . pull_actions ( params) . map_err ( into_error) ?;
119- JsValue :: from_serde ( & result)
129+ to_value ( & result)
120130 . map ( IPullActionsResult :: from)
121131 . map_err ( into_error)
122132 }
123133
124134 #[ wasm_bindgen( js_name = formatFile) ]
125135 pub fn format_file ( & self , params : IFormatFileParams ) -> Result < JsValue , Error > {
126- let params: FormatFileParams = params. into_serde ( ) . map_err ( into_error) ?;
136+ let params: FormatFileParams =
137+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
127138 let result = self . inner . format_file ( params) . map_err ( into_error) ?;
128- JsValue :: from_serde ( & result) . map_err ( into_error)
139+ to_value ( & result) . map_err ( into_error)
129140 }
130141
131142 #[ wasm_bindgen( js_name = formatRange) ]
132143 pub fn format_range ( & self , params : IFormatRangeParams ) -> Result < JsValue , Error > {
133- let params: FormatRangeParams = params. into_serde ( ) . map_err ( into_error) ?;
144+ let params: FormatRangeParams =
145+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
134146 let result = self . inner . format_range ( params) . map_err ( into_error) ?;
135- JsValue :: from_serde ( & result) . map_err ( into_error)
147+ to_value ( & result) . map_err ( into_error)
136148 }
137149
138150 #[ wasm_bindgen( js_name = formatOnType) ]
139151 pub fn format_on_type ( & self , params : IFormatOnTypeParams ) -> Result < JsValue , Error > {
140- let params: FormatOnTypeParams = params. into_serde ( ) . map_err ( into_error) ?;
152+ let params: FormatOnTypeParams =
153+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
141154 let result = self . inner . format_on_type ( params) . map_err ( into_error) ?;
142- JsValue :: from_serde ( & result) . map_err ( into_error)
155+ to_value ( & result) . map_err ( into_error)
143156 }
144157
145158 #[ wasm_bindgen( js_name = fixFile) ]
146159 pub fn fix_file ( & self , params : IFixFileParams ) -> Result < IFixFileResult , Error > {
147- let params: FixFileParams = params. into_serde ( ) . map_err ( into_error) ?;
160+ let params: FixFileParams =
161+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
148162 let result = self . inner . fix_file ( params) . map_err ( into_error) ?;
149- JsValue :: from_serde ( & result)
163+ to_value ( & result)
150164 . map ( IFixFileResult :: from)
151165 . map_err ( into_error)
152166 }
153167
154168 pub fn rename ( & self , params : IRenameParams ) -> Result < IRenameResult , Error > {
155- let params: RenameParams = params. into_serde ( ) . map_err ( into_error) ?;
169+ let params: RenameParams =
170+ serde_wasm_bindgen:: from_value ( params. into ( ) ) . map_err ( into_error) ?;
156171 let result = self . inner . rename ( params) . map_err ( into_error) ?;
157- JsValue :: from_serde ( & result)
172+ to_value ( & result)
158173 . map ( IRenameResult :: from)
159174 . map_err ( into_error)
160175 }
161176}
177+
178+ fn to_value < T : serde:: ser:: Serialize + ?Sized > (
179+ value : & T ,
180+ ) -> Result < JsValue , serde_wasm_bindgen:: Error > {
181+ value. serialize ( & serde_wasm_bindgen:: Serializer :: new ( ) . serialize_missing_as_null ( true ) )
182+ }
0 commit comments