@@ -168,57 +168,92 @@ impl TryFrom<&WireMessage> for Message {
168
168
/// messages that are received from the frontend.
169
169
fn try_from ( msg : & WireMessage ) -> Result < Self , Error > {
170
170
let kind = msg. header . msg_type . clone ( ) ;
171
+
171
172
if kind == KernelInfoRequest :: message_type ( ) {
172
173
return Ok ( Message :: KernelInfoRequest ( JupyterMessage :: try_from ( msg) ?) ) ;
173
- } else if kind == KernelInfoReply :: message_type ( ) {
174
+ }
175
+ if kind == KernelInfoReply :: message_type ( ) {
174
176
return Ok ( Message :: KernelInfoReply ( JupyterMessage :: try_from ( msg) ?) ) ;
175
- } else if kind == IsCompleteRequest :: message_type ( ) {
177
+ }
178
+ if kind == IsCompleteRequest :: message_type ( ) {
176
179
return Ok ( Message :: IsCompleteRequest ( JupyterMessage :: try_from ( msg) ?) ) ;
177
- } else if kind == IsCompleteReply :: message_type ( ) {
180
+ }
181
+ if kind == IsCompleteReply :: message_type ( ) {
178
182
return Ok ( Message :: IsCompleteReply ( JupyterMessage :: try_from ( msg) ?) ) ;
179
- } else if kind == InspectRequest :: message_type ( ) {
183
+ }
184
+ if kind == InspectRequest :: message_type ( ) {
180
185
return Ok ( Message :: InspectRequest ( JupyterMessage :: try_from ( msg) ?) ) ;
181
- } else if kind == InspectReply :: message_type ( ) {
186
+ }
187
+ if kind == InspectReply :: message_type ( ) {
182
188
return Ok ( Message :: InspectReply ( JupyterMessage :: try_from ( msg) ?) ) ;
183
- } else if kind == ExecuteRequest :: message_type ( ) {
189
+ }
190
+ if kind == ExecuteReplyException :: message_type ( ) {
191
+ if let Ok ( data) = JupyterMessage :: try_from ( msg) {
192
+ return Ok ( Message :: ExecuteReplyException ( data) ) ;
193
+ }
194
+ // else fallthrough to try `ExecuteRequest` which has the same message type
195
+ }
196
+ if kind == ExecuteRequest :: message_type ( ) {
184
197
return Ok ( Message :: ExecuteRequest ( JupyterMessage :: try_from ( msg) ?) ) ;
185
- } else if kind == ExecuteReply :: message_type ( ) {
198
+ }
199
+ if kind == ExecuteReply :: message_type ( ) {
186
200
return Ok ( Message :: ExecuteReply ( JupyterMessage :: try_from ( msg) ?) ) ;
187
- } else if kind == ExecuteResult :: message_type ( ) {
201
+ }
202
+ if kind == ExecuteResult :: message_type ( ) {
188
203
return Ok ( Message :: ExecuteResult ( JupyterMessage :: try_from ( msg) ?) ) ;
189
- } else if kind == ExecuteInput :: message_type ( ) {
204
+ }
205
+ if kind == ExecuteError :: message_type ( ) {
206
+ return Ok ( Message :: ExecuteError ( JupyterMessage :: try_from ( msg) ?) ) ;
207
+ }
208
+ if kind == ExecuteInput :: message_type ( ) {
190
209
return Ok ( Message :: ExecuteInput ( JupyterMessage :: try_from ( msg) ?) ) ;
191
- } else if kind == CompleteRequest :: message_type ( ) {
210
+ }
211
+ if kind == CompleteRequest :: message_type ( ) {
192
212
return Ok ( Message :: CompleteRequest ( JupyterMessage :: try_from ( msg) ?) ) ;
193
- } else if kind == CompleteReply :: message_type ( ) {
213
+ }
214
+ if kind == CompleteReply :: message_type ( ) {
194
215
return Ok ( Message :: CompleteReply ( JupyterMessage :: try_from ( msg) ?) ) ;
195
- } else if kind == ShutdownRequest :: message_type ( ) {
216
+ }
217
+ if kind == ShutdownRequest :: message_type ( ) {
196
218
return Ok ( Message :: ShutdownRequest ( JupyterMessage :: try_from ( msg) ?) ) ;
197
- } else if kind == KernelStatus :: message_type ( ) {
219
+ }
220
+ if kind == KernelStatus :: message_type ( ) {
198
221
return Ok ( Message :: Status ( JupyterMessage :: try_from ( msg) ?) ) ;
199
- } else if kind == CommInfoRequest :: message_type ( ) {
222
+ }
223
+ if kind == CommInfoRequest :: message_type ( ) {
200
224
return Ok ( Message :: CommInfoRequest ( JupyterMessage :: try_from ( msg) ?) ) ;
201
- } else if kind == CommInfoReply :: message_type ( ) {
225
+ }
226
+ if kind == CommInfoReply :: message_type ( ) {
202
227
return Ok ( Message :: CommInfoReply ( JupyterMessage :: try_from ( msg) ?) ) ;
203
- } else if kind == CommOpen :: message_type ( ) {
228
+ }
229
+ if kind == CommOpen :: message_type ( ) {
204
230
return Ok ( Message :: CommOpen ( JupyterMessage :: try_from ( msg) ?) ) ;
205
- } else if kind == CommWireMsg :: message_type ( ) {
231
+ }
232
+ if kind == CommWireMsg :: message_type ( ) {
206
233
return Ok ( Message :: CommMsg ( JupyterMessage :: try_from ( msg) ?) ) ;
207
- } else if kind == CommClose :: message_type ( ) {
234
+ }
235
+ if kind == CommClose :: message_type ( ) {
208
236
return Ok ( Message :: CommClose ( JupyterMessage :: try_from ( msg) ?) ) ;
209
- } else if kind == InterruptRequest :: message_type ( ) {
237
+ }
238
+ if kind == InterruptRequest :: message_type ( ) {
210
239
return Ok ( Message :: InterruptRequest ( JupyterMessage :: try_from ( msg) ?) ) ;
211
- } else if kind == InterruptReply :: message_type ( ) {
240
+ }
241
+ if kind == InterruptReply :: message_type ( ) {
212
242
return Ok ( Message :: InterruptReply ( JupyterMessage :: try_from ( msg) ?) ) ;
213
- } else if kind == InputReply :: message_type ( ) {
243
+ }
244
+ if kind == InputReply :: message_type ( ) {
214
245
return Ok ( Message :: InputReply ( JupyterMessage :: try_from ( msg) ?) ) ;
215
- } else if kind == InputRequest :: message_type ( ) {
246
+ }
247
+ if kind == InputRequest :: message_type ( ) {
216
248
return Ok ( Message :: InputRequest ( JupyterMessage :: try_from ( msg) ?) ) ;
217
- } else if kind == StreamOutput :: message_type ( ) {
249
+ }
250
+ if kind == StreamOutput :: message_type ( ) {
218
251
return Ok ( Message :: StreamOutput ( JupyterMessage :: try_from ( msg) ?) ) ;
219
- } else if kind == UiFrontendRequest :: message_type ( ) {
252
+ }
253
+ if kind == UiFrontendRequest :: message_type ( ) {
220
254
return Ok ( Message :: CommRequest ( JupyterMessage :: try_from ( msg) ?) ) ;
221
- } else if kind == JsonRpcReply :: message_type ( ) {
255
+ }
256
+ if kind == JsonRpcReply :: message_type ( ) {
222
257
return Ok ( Message :: CommReply ( JupyterMessage :: try_from ( msg) ?) ) ;
223
258
}
224
259
return Err ( Error :: UnknownMessageType ( kind) ) ;
0 commit comments