Skip to content

Commit 6a23ced

Browse files
committed
Seal SPI traits
1 parent 239c476 commit 6a23ced

File tree

1 file changed

+53
-54
lines changed

1 file changed

+53
-54
lines changed

src/spi.rs

Lines changed: 53 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -149,19 +149,18 @@ pub enum Error {
149149
Crc,
150150
}
151151

152-
// FIXME these should be "closed" traits
153-
/// SCK pin -- DO NOT IMPLEMENT THIS TRAIT
154-
pub unsafe trait SckPin<SPI> {}
152+
/// SCK pin
153+
pub trait SckPin<SPI>: crate::private::Sealed {}
155154

156-
/// MISO pin -- DO NOT IMPLEMENT THIS TRAIT
157-
pub unsafe trait MisoPin<SPI> {}
155+
/// MISO pin
156+
pub trait MisoPin<SPI>: crate::private::Sealed {}
158157

159-
/// MOSI pin -- DO NOT IMPLEMENT THIS TRAIT
160-
pub unsafe trait MosiPin<SPI> {}
158+
/// MOSI pin
159+
pub trait MosiPin<SPI>: crate::private::Sealed {}
161160

162-
unsafe impl SckPin<SPI1> for PA5<AF5<PushPull>> {}
161+
impl SckPin<SPI1> for PA5<AF5<PushPull>> {}
163162
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
164-
unsafe impl SckPin<SPI1> for PA12<AF6<PushPull>> {}
163+
impl SckPin<SPI1> for PA12<AF6<PushPull>> {}
165164
#[cfg(any(
166165
feature = "stm32f302xb",
167166
feature = "stm32f302xc",
@@ -175,16 +174,16 @@ unsafe impl SckPin<SPI1> for PA12<AF6<PushPull>> {}
175174
feature = "stm32f378",
176175
feature = "stm32f398",
177176
))]
178-
unsafe impl SckPin<SPI1> for PB3<AF5<PushPull>> {}
177+
impl SckPin<SPI1> for PB3<AF5<PushPull>> {}
179178
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
180-
unsafe impl SckPin<SPI1> for PC7<AF5<PushPull>> {}
179+
impl SckPin<SPI1> for PC7<AF5<PushPull>> {}
181180

182181
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
183-
unsafe impl SckPin<SPI2> for PA8<AF5<PushPull>> {}
182+
impl SckPin<SPI2> for PA8<AF5<PushPull>> {}
184183
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
185-
unsafe impl SckPin<SPI2> for PB8<AF5<PushPull>> {}
184+
impl SckPin<SPI2> for PB8<AF5<PushPull>> {}
186185
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
187-
unsafe impl SckPin<SPI2> for PB10<AF5<PushPull>> {}
186+
impl SckPin<SPI2> for PB10<AF5<PushPull>> {}
188187
#[cfg(any(
189188
feature = "stm32f301",
190189
feature = "stm32f302",
@@ -194,11 +193,11 @@ unsafe impl SckPin<SPI2> for PB10<AF5<PushPull>> {}
194193
feature = "stm32f358",
195194
feature = "stm32f398"
196195
))]
197-
unsafe impl SckPin<SPI2> for PB13<AF5<PushPull>> {}
196+
impl SckPin<SPI2> for PB13<AF5<PushPull>> {}
198197
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
199-
unsafe impl SckPin<SPI2> for PD7<AF5<PushPull>> {}
198+
impl SckPin<SPI2> for PD7<AF5<PushPull>> {}
200199
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
201-
unsafe impl SckPin<SPI2> for PD8<AF5<PushPull>> {}
200+
impl SckPin<SPI2> for PD8<AF5<PushPull>> {}
202201
#[cfg(any(
203202
feature = "stm32f302x6",
204203
feature = "stm32f302x8",
@@ -209,7 +208,7 @@ unsafe impl SckPin<SPI2> for PD8<AF5<PushPull>> {}
209208
feature = "stm32f318",
210209
feature = "stm32f398",
211210
))]
212-
unsafe impl SckPin<SPI2> for PF1<AF5<PushPull>> {}
211+
impl SckPin<SPI2> for PF1<AF5<PushPull>> {}
213212
#[cfg(any(
214213
feature = "stm32f302xb",
215214
feature = "stm32f302xc",
@@ -222,7 +221,7 @@ unsafe impl SckPin<SPI2> for PF1<AF5<PushPull>> {}
222221
feature = "stm32f358",
223222
feature = "stm32f398",
224223
))]
225-
unsafe impl SckPin<SPI2> for PF9<AF5<PushPull>> {}
224+
impl SckPin<SPI2> for PF9<AF5<PushPull>> {}
226225
#[cfg(any(
227226
feature = "stm32f302xb",
228227
feature = "stm32f302xc",
@@ -235,10 +234,10 @@ unsafe impl SckPin<SPI2> for PF9<AF5<PushPull>> {}
235234
feature = "stm32f358",
236235
feature = "stm32f398",
237236
))]
238-
unsafe impl SckPin<SPI2> for PF10<AF5<PushPull>> {}
237+
impl SckPin<SPI2> for PF10<AF5<PushPull>> {}
239238

240239
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
241-
unsafe impl SckPin<SPI3> for PA1<AF6<PushPull>> {}
240+
impl SckPin<SPI3> for PA1<AF6<PushPull>> {}
242241
#[cfg(any(
243242
feature = "stm32f302",
244243
feature = "stm32f303xd",
@@ -248,8 +247,8 @@ unsafe impl SckPin<SPI3> for PA1<AF6<PushPull>> {}
248247
feature = "stm32f378",
249248
feature = "stm32f398",
250249
))]
251-
unsafe impl SckPin<SPI3> for PB3<AF6<PushPull>> {}
252-
unsafe impl SckPin<SPI3> for PC10<AF6<PushPull>> {}
250+
impl SckPin<SPI3> for PB3<AF6<PushPull>> {}
251+
impl SckPin<SPI3> for PC10<AF6<PushPull>> {}
253252

254253
#[cfg(any(
255254
feature = "stm32f302xd",
@@ -258,19 +257,19 @@ unsafe impl SckPin<SPI3> for PC10<AF6<PushPull>> {}
258257
feature = "stm32f303xe",
259258
feature = "stm32f398",
260259
))]
261-
unsafe impl SckPin<SPI4> for PE2<AF5<PushPull>> {}
260+
impl SckPin<SPI4> for PE2<AF5<PushPull>> {}
262261
#[cfg(any(
263262
feature = "stm32f302xd",
264263
feature = "stm32f302xe",
265264
feature = "stm32f303xd",
266265
feature = "stm32f303xe",
267266
feature = "stm32f398",
268267
))]
269-
unsafe impl SckPin<SPI4> for PE12<AF5<PushPull>> {}
268+
impl SckPin<SPI4> for PE12<AF5<PushPull>> {}
270269

271-
unsafe impl MisoPin<SPI1> for PA6<AF5<PushPull>> {}
270+
impl MisoPin<SPI1> for PA6<AF5<PushPull>> {}
272271
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
273-
unsafe impl MisoPin<SPI1> for PA13<AF6<PushPull>> {}
272+
impl MisoPin<SPI1> for PA13<AF6<PushPull>> {}
274273
#[cfg(any(
275274
feature = "stm32f302xb",
276275
feature = "stm32f302xc",
@@ -284,12 +283,12 @@ unsafe impl MisoPin<SPI1> for PA13<AF6<PushPull>> {}
284283
feature = "stm32f378",
285284
feature = "stm32f398",
286285
))]
287-
unsafe impl MisoPin<SPI1> for PB4<AF5<PushPull>> {}
286+
impl MisoPin<SPI1> for PB4<AF5<PushPull>> {}
288287
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
289-
unsafe impl MisoPin<SPI1> for PC8<AF5<PushPull>> {}
288+
impl MisoPin<SPI1> for PC8<AF5<PushPull>> {}
290289

291290
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
292-
unsafe impl MisoPin<SPI2> for PA9<AF5<PushPull>> {}
291+
impl MisoPin<SPI2> for PA9<AF5<PushPull>> {}
293292
#[cfg(any(
294293
feature = "stm32f302x6",
295294
feature = "stm32f302x8",
@@ -300,15 +299,15 @@ unsafe impl MisoPin<SPI2> for PA9<AF5<PushPull>> {}
300299
feature = "stm32f318",
301300
feature = "stm32f398",
302301
))]
303-
unsafe impl MisoPin<SPI2> for PA10<AF5<PushPull>> {}
304-
unsafe impl MisoPin<SPI2> for PB14<AF5<PushPull>> {}
302+
impl MisoPin<SPI2> for PA10<AF5<PushPull>> {}
303+
impl MisoPin<SPI2> for PB14<AF5<PushPull>> {}
305304
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
306-
unsafe impl MisoPin<SPI2> for PC2<AF5<PushPull>> {}
305+
impl MisoPin<SPI2> for PC2<AF5<PushPull>> {}
307306
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
308-
unsafe impl MisoPin<SPI2> for PD3<AF5<PushPull>> {}
307+
impl MisoPin<SPI2> for PD3<AF5<PushPull>> {}
309308

310309
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
311-
unsafe impl MisoPin<SPI3> for PA2<AF6<PushPull>> {}
310+
impl MisoPin<SPI3> for PA2<AF6<PushPull>> {}
312311
#[cfg(any(
313312
feature = "stm32f302",
314313
feature = "stm32f303xd",
@@ -318,8 +317,8 @@ unsafe impl MisoPin<SPI3> for PA2<AF6<PushPull>> {}
318317
feature = "stm32f378",
319318
feature = "stm32f398",
320319
))]
321-
unsafe impl MisoPin<SPI3> for PB4<AF6<PushPull>> {}
322-
unsafe impl MisoPin<SPI3> for PC11<AF6<PushPull>> {}
320+
impl MisoPin<SPI3> for PB4<AF6<PushPull>> {}
321+
impl MisoPin<SPI3> for PC11<AF6<PushPull>> {}
323322

324323
#[cfg(any(
325324
feature = "stm32f302xd",
@@ -328,27 +327,27 @@ unsafe impl MisoPin<SPI3> for PC11<AF6<PushPull>> {}
328327
feature = "stm32f303xe",
329328
feature = "stm32f398",
330329
))]
331-
unsafe impl MisoPin<SPI4> for PE5<AF5<PushPull>> {}
330+
impl MisoPin<SPI4> for PE5<AF5<PushPull>> {}
332331
#[cfg(any(
333332
feature = "stm32f302xd",
334333
feature = "stm32f302xe",
335334
feature = "stm32f303xd",
336335
feature = "stm32f303xe",
337336
feature = "stm32f398",
338337
))]
339-
unsafe impl MisoPin<SPI4> for PE13<AF5<PushPull>> {}
338+
impl MisoPin<SPI4> for PE13<AF5<PushPull>> {}
340339

341-
unsafe impl MosiPin<SPI1> for PA7<AF5<PushPull>> {}
340+
impl MosiPin<SPI1> for PA7<AF5<PushPull>> {}
342341
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
343-
unsafe impl MosiPin<SPI1> for PB0<AF5<PushPull>> {}
344-
unsafe impl MosiPin<SPI1> for PB5<AF5<PushPull>> {}
342+
impl MosiPin<SPI1> for PB0<AF5<PushPull>> {}
343+
impl MosiPin<SPI1> for PB5<AF5<PushPull>> {}
345344
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
346-
unsafe impl MosiPin<SPI1> for PC9<AF5<PushPull>> {}
345+
impl MosiPin<SPI1> for PC9<AF5<PushPull>> {}
347346
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
348-
unsafe impl MosiPin<SPI1> for PF6<AF5<PushPull>> {}
347+
impl MosiPin<SPI1> for PF6<AF5<PushPull>> {}
349348

350349
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
351-
unsafe impl MosiPin<SPI2> for PA10<AF5<PushPull>> {}
350+
impl MosiPin<SPI2> for PA10<AF5<PushPull>> {}
352351
#[cfg(any(
353352
feature = "stm32f302x6",
354353
feature = "stm32f302x8",
@@ -359,17 +358,17 @@ unsafe impl MosiPin<SPI2> for PA10<AF5<PushPull>> {}
359358
feature = "stm32f318",
360359
feature = "stm32f398",
361360
))]
362-
unsafe impl MosiPin<SPI2> for PA11<AF5<PushPull>> {}
363-
unsafe impl MosiPin<SPI2> for PB15<AF5<PushPull>> {}
361+
impl MosiPin<SPI2> for PA11<AF5<PushPull>> {}
362+
impl MosiPin<SPI2> for PB15<AF5<PushPull>> {}
364363
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
365-
unsafe impl MisoPin<SPI2> for PC3<AF5<PushPull>> {}
364+
impl MisoPin<SPI2> for PC3<AF5<PushPull>> {}
366365
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
367-
unsafe impl MisoPin<SPI2> for PD4<AF5<PushPull>> {}
366+
impl MisoPin<SPI2> for PD4<AF5<PushPull>> {}
368367

369368
#[cfg(any(feature = "stm32f373", feature = "stm32f378"))]
370-
unsafe impl MisoPin<SPI3> for PA3<AF6<PushPull>> {}
371-
unsafe impl MosiPin<SPI3> for PB5<AF6<PushPull>> {}
372-
unsafe impl MosiPin<SPI3> for PC12<AF6<PushPull>> {}
369+
impl MisoPin<SPI3> for PA3<AF6<PushPull>> {}
370+
impl MosiPin<SPI3> for PB5<AF6<PushPull>> {}
371+
impl MosiPin<SPI3> for PC12<AF6<PushPull>> {}
373372

374373
#[cfg(any(
375374
feature = "stm32f302xd",
@@ -378,15 +377,15 @@ unsafe impl MosiPin<SPI3> for PC12<AF6<PushPull>> {}
378377
feature = "stm32f303xe",
379378
feature = "stm32f398",
380379
))]
381-
unsafe impl MosiPin<SPI4> for PE6<AF5<PushPull>> {}
380+
impl MosiPin<SPI4> for PE6<AF5<PushPull>> {}
382381
#[cfg(any(
383382
feature = "stm32f302xd",
384383
feature = "stm32f302xe",
385384
feature = "stm32f303xd",
386385
feature = "stm32f303xe",
387386
feature = "stm32f398",
388387
))]
389-
unsafe impl MosiPin<SPI4> for PE14<AF5<PushPull>> {}
388+
impl MosiPin<SPI4> for PE14<AF5<PushPull>> {}
390389

391390
/// Configuration trait for the Word Size
392391
/// used by the SPI peripheral

0 commit comments

Comments
 (0)