@@ -136,8 +136,6 @@ impl FleetProvisioner {
136
136
where
137
137
C : DeserializeOwned ,
138
138
{
139
- use embedded_mqtt:: SliceBufferProvider ;
140
-
141
139
let mut create_subscription = Self :: begin ( mqtt, csr, payload_format) . await ?;
142
140
let mut message = create_subscription
143
141
. next ( )
@@ -146,11 +144,8 @@ impl FleetProvisioner {
146
144
147
145
let ownership_token = match Topic :: from_str ( message. topic_name ( ) ) {
148
146
Some ( Topic :: CreateKeysAndCertificateAccepted ( format) ) => {
149
- let response = Self :: deserialize :: <
150
- CreateKeysAndCertificateResponse ,
151
- M ,
152
- SliceBufferProvider < ' a > ,
153
- > ( format, & mut message) ?;
147
+ let response =
148
+ Self :: deserialize :: < CreateKeysAndCertificateResponse > ( format, & mut message) ?;
154
149
155
150
credential_handler
156
151
. store_credentials ( Credentials {
@@ -164,11 +159,10 @@ impl FleetProvisioner {
164
159
}
165
160
166
161
Some ( Topic :: CreateCertificateFromCsrAccepted ( format) ) => {
167
- let response = Self :: deserialize :: <
168
- CreateCertificateFromCsrResponse ,
169
- M ,
170
- SliceBufferProvider < ' a > ,
171
- > ( format, & mut message) ?;
162
+ let response = Self :: deserialize :: < CreateCertificateFromCsrResponse > (
163
+ format,
164
+ message. payload_mut ( ) ,
165
+ ) ?;
172
166
173
167
credential_handler
174
168
. store_credentials ( Credentials {
@@ -186,7 +180,7 @@ impl FleetProvisioner {
186
180
Topic :: CreateKeysAndCertificateRejected ( format)
187
181
| Topic :: CreateCertificateFromCsrRejected ( format) ,
188
182
) => {
189
- return Err ( Self :: handle_error ( format, message) . unwrap_err ( ) ) ;
183
+ return Err ( Self :: handle_error ( format, message. payload_mut ( ) ) . unwrap_err ( ) ) ;
190
184
}
191
185
192
186
t => {
@@ -259,18 +253,17 @@ impl FleetProvisioner {
259
253
260
254
match Topic :: from_str ( message. topic_name ( ) ) {
261
255
Some ( Topic :: RegisterThingAccepted ( _, format) ) => {
262
- let response = Self :: deserialize :: <
263
- RegisterThingResponse < ' _ , C > ,
264
- M ,
265
- SliceBufferProvider < ' a > ,
266
- > ( format, & mut message) ?;
256
+ let response = Self :: deserialize :: < RegisterThingResponse < ' _ , C > > (
257
+ format,
258
+ message. payload_mut ( ) ,
259
+ ) ?;
267
260
268
261
Ok ( response. device_configuration )
269
262
}
270
263
271
264
// Error happened!
272
265
Some ( Topic :: RegisterThingRejected ( _, format) ) => {
273
- Err ( Self :: handle_error ( format, message) . unwrap_err ( ) )
266
+ Err ( Self :: handle_error ( format, message. payload_mut ( ) ) . unwrap_err ( ) )
274
267
}
275
268
276
269
t => {
@@ -387,37 +380,22 @@ impl FleetProvisioner {
387
380
}
388
381
}
389
382
390
- fn deserialize < ' a , R : Deserialize < ' a > , M : RawMutex , B : BufferProvider > (
383
+ fn deserialize < ' a , R : Deserialize < ' a > > (
391
384
payload_format : PayloadFormat ,
392
- message : & ' a mut Message < ' _ , M , B > ,
385
+ payload : & ' a mut [ u8 ] ,
393
386
) -> Result < R , Error > {
394
- trace ! (
395
- "Accepted Topic {:?}. Payload len: {:?}" ,
396
- payload_format,
397
- message. payload( ) . len( )
398
- ) ;
399
-
400
387
Ok ( match payload_format {
401
388
#[ cfg( feature = "provision_cbor" ) ]
402
- PayloadFormat :: Cbor => minicbor_serde:: from_slice :: < R > ( message . payload_mut ( ) ) ?,
403
- PayloadFormat :: Json => serde_json_core:: from_slice :: < R > ( message . payload ( ) ) ?. 0 ,
389
+ PayloadFormat :: Cbor => minicbor_serde:: from_slice :: < R > ( payload ) ?,
390
+ PayloadFormat :: Json => serde_json_core:: from_slice :: < R > ( payload) ?. 0 ,
404
391
} )
405
392
}
406
393
407
- fn handle_error < M : RawMutex , B : BufferProvider > (
408
- format : PayloadFormat ,
409
- mut message : Message < ' _ , M , B > ,
410
- ) -> Result < ( ) , Error > {
411
- error ! ( ">> {:?}" , message. topic_name( ) ) ;
412
-
394
+ fn handle_error ( format : PayloadFormat , payload : & mut [ u8 ] ) -> Result < ( ) , Error > {
413
395
let response = match format {
414
396
#[ cfg( feature = "provision_cbor" ) ]
415
- PayloadFormat :: Cbor => {
416
- minicbor_serde:: from_slice :: < ErrorResponse > ( message. payload_mut ( ) ) ?
417
- }
418
- PayloadFormat :: Json => {
419
- serde_json_core:: from_slice :: < ErrorResponse > ( message. payload ( ) ) ?. 0
420
- }
397
+ PayloadFormat :: Cbor => minicbor_serde:: from_slice :: < ErrorResponse > ( payload) ?,
398
+ PayloadFormat :: Json => serde_json_core:: from_slice :: < ErrorResponse > ( payload) ?. 0 ,
421
399
} ;
422
400
423
401
error ! ( "{:?}" , response) ;
0 commit comments