Skip to content

Commit b524806

Browse files
committed
Avoid using PhantomData<()> to make constructor private
1 parent 6af8dcc commit b524806

File tree

4 files changed

+55
-74
lines changed

4 files changed

+55
-74
lines changed

src/comparator.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,8 @@ impl EnabledState for Locked {}
5656

5757
macro_rules! impl_comp {
5858
($($t:ident: $reg:ident,)+) => {$(
59-
pub struct $t {
60-
_rb: PhantomData<()>,
61-
}
59+
#[non_exhaustive]
60+
pub struct $t;
6261

6362
impl $t {
6463
pub fn csr(&self) -> &$crate::stm32::comp::CCSR {
@@ -548,31 +547,31 @@ pub fn split(_comp: COMP, rcc: &mut Rcc) -> Comparators {
548547
rcc.rb.apb2rstr().modify(|_, w| w.syscfgrst().clear_bit());
549548

550549
(
551-
COMP1 { _rb: PhantomData },
552-
COMP2 { _rb: PhantomData },
553-
COMP3 { _rb: PhantomData },
554-
COMP4 { _rb: PhantomData },
550+
COMP1,
551+
COMP2,
552+
COMP3,
553+
COMP4,
555554
#[cfg(any(
556555
feature = "stm32g473",
557556
feature = "stm32g483",
558557
feature = "stm32g474",
559558
feature = "stm32g484"
560559
))]
561-
COMP5 { _rb: PhantomData },
560+
COMP5,
562561
#[cfg(any(
563562
feature = "stm32g473",
564563
feature = "stm32g483",
565564
feature = "stm32g474",
566565
feature = "stm32g484"
567566
))]
568-
COMP6 { _rb: PhantomData },
567+
COMP6,
569568
#[cfg(any(
570569
feature = "stm32g473",
571570
feature = "stm32g483",
572571
feature = "stm32g474",
573572
feature = "stm32g484"
574573
))]
575-
COMP7 { _rb: PhantomData },
574+
COMP7,
576575
)
577576
}
578577

src/hrtim/control.rs

Lines changed: 29 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
use core::marker::PhantomData;
2-
31
use crate::{
42
hrtim::fault::{
53
FltMonitor1, FltMonitor2, FltMonitor3, FltMonitor4, FltMonitor5, FltMonitor6, FltMonitorSys,
@@ -140,7 +138,7 @@ impl HrTimOngoingCalibration {
140138
unsafe { self.init() };
141139

142140
(
143-
HrTimCalibrated { _x: PhantomData },
141+
HrTimCalibrated,
144142
unsafe { FaultInputs::new() },
145143
unsafe { EevInputs::new() },
146144
)
@@ -180,33 +178,31 @@ impl HrTimOngoingCalibration {
180178
/// This object may be used for things that needs to be done before any timers have been started but after the calibration has been completed. Its existence is proof that no timers have started.
181179
///
182180
/// Once done with setup, use the `constrain` to get a `HrPwmControl` which can be used to start the timers.
183-
pub struct HrTimCalibrated {
184-
_x: PhantomData<()>,
185-
}
181+
#[non_exhaustive]
182+
pub struct HrTimCalibrated;
186183

187184
impl HrTimCalibrated {
188185
pub fn constrain(self) -> HrPwmControl {
189186
HrPwmControl {
190-
_x: PhantomData,
191-
control: HrPwmCtrl { _x: PhantomData },
192-
fault_sys: FltMonitorSys { _x: PhantomData },
193-
fault_1: FltMonitor1 { _x: PhantomData },
194-
fault_2: FltMonitor2 { _x: PhantomData },
195-
fault_3: FltMonitor3 { _x: PhantomData },
196-
fault_4: FltMonitor4 { _x: PhantomData },
197-
fault_5: FltMonitor5 { _x: PhantomData },
198-
fault_6: FltMonitor6 { _x: PhantomData },
199-
200-
adc_trigger1: Adc1Trigger { _x: PhantomData },
201-
adc_trigger2: Adc2Trigger { _x: PhantomData },
202-
adc_trigger3: Adc3Trigger { _x: PhantomData },
203-
adc_trigger4: Adc4Trigger { _x: PhantomData },
204-
adc_trigger5: Adc5Trigger { _x: PhantomData },
205-
adc_trigger6: Adc6Trigger { _x: PhantomData },
206-
adc_trigger7: Adc7Trigger { _x: PhantomData },
207-
adc_trigger8: Adc8Trigger { _x: PhantomData },
208-
adc_trigger9: Adc9Trigger { _x: PhantomData },
209-
adc_trigger10: Adc10Trigger { _x: PhantomData },
187+
control: HrPwmCtrl,
188+
fault_sys: FltMonitorSys,
189+
fault_1: FltMonitor1,
190+
fault_2: FltMonitor2,
191+
fault_3: FltMonitor3,
192+
fault_4: FltMonitor4,
193+
fault_5: FltMonitor5,
194+
fault_6: FltMonitor6,
195+
196+
adc_trigger1: Adc1Trigger,
197+
adc_trigger2: Adc2Trigger,
198+
adc_trigger3: Adc3Trigger,
199+
adc_trigger4: Adc4Trigger,
200+
adc_trigger5: Adc5Trigger,
201+
adc_trigger6: Adc6Trigger,
202+
adc_trigger7: Adc7Trigger,
203+
adc_trigger8: Adc8Trigger,
204+
adc_trigger9: Adc9Trigger,
205+
adc_trigger10: Adc10Trigger,
210206
}
211207
}
212208
}
@@ -220,14 +216,12 @@ impl<'a> From<&'a mut HrPwmControl> for &'a mut HrPwmCtrl {
220216
/// Used as a token to guarantee unique access to resources common to multiple timers
221217
///
222218
/// An instance of this object can be obtained from [`HrPwmControl`].control
223-
pub struct HrPwmCtrl {
224-
_x: PhantomData<()>,
225-
}
219+
#[non_exhaustive]
220+
pub struct HrPwmCtrl;
226221

227222
/// Used as a token to guarantee unique access to resources common to multiple timers
223+
#[non_exhaustive]
228224
pub struct HrPwmControl {
229-
_x: PhantomData<()>,
230-
231225
pub control: HrPwmCtrl,
232226

233227
pub fault_sys: FltMonitorSys,
@@ -253,9 +247,8 @@ pub struct HrPwmControl {
253247

254248
macro_rules! impl_adc1234_trigger {
255249
($($t:ident: [$trait_:ident, $adcXr:ident, $variant345:ident $(, $variant12:ident)*]),*) => {$(
256-
pub struct $t {
257-
_x: PhantomData<()>,
258-
}
250+
#[non_exhaustive]
251+
pub struct $t;
259252

260253
impl $t {
261254
pub fn enable_source<T: $trait_>(&mut self, _trigger: &T) {
@@ -282,9 +275,8 @@ macro_rules! impl_adc1234_trigger {
282275

283276
macro_rules! impl_adc5678910_trigger {
284277
($($t:ident: [$trait_:ident, $adcXtrg:ident, $variant345:ident, $variant12:ident]),*) => {$(
285-
pub struct $t {
286-
_x: PhantomData<()>,
287-
}
278+
#[non_exhaustive]
279+
pub struct $t;
288280

289281
impl $t {
290282
pub fn enable_source<T: $trait_>(&mut self, _trigger: &T) {

src/hrtim/external_event.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
use core::marker::PhantomData;
2-
31
use crate::comparator::{COMP1, COMP2, COMP3, COMP4, COMP5, COMP6, COMP7};
42
use crate::gpio::gpiob::{PB3, PB4, PB5, PB6, PB7, PB8, PB9};
53
use crate::gpio::gpioc::{PC11, PC12, PC5, PC6};
@@ -9,10 +7,9 @@ use crate::stm32::HRTIM_COMMON;
97

108
use super::control::HrTimCalibrated;
119

10+
#[non_exhaustive]
1211
#[derive(Copy, Clone, PartialEq)]
13-
pub struct ExternalEventSource<const N: u8, const IS_FAST: bool> {
14-
_x: PhantomData<()>,
15-
}
12+
pub struct ExternalEventSource<const N: u8, const IS_FAST: bool>;
1613

1714
pub struct EevInputs {
1815
pub eev_input1: EevInput<1>,
@@ -292,7 +289,7 @@ macro_rules! impl_eev1_5_to_es {
292289
});
293290
}
294291

295-
ExternalEventSource { _x: PhantomData }
292+
ExternalEventSource
296293
}
297294
}
298295

@@ -334,7 +331,7 @@ macro_rules! impl_eev6_10_to_es {
334331
common.eecr3().modify(|_r, w| w.$eeXf().bits(filter_bits));
335332
}
336333

337-
ExternalEventSource { _x: PhantomData }
334+
ExternalEventSource
338335
}
339336
}
340337

src/hrtim/fault.rs

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
use core::marker::PhantomData;
2-
31
use crate::comparator::{COMP1, COMP2, COMP3, COMP4, COMP5, COMP6};
42
use crate::gpio::gpioa::{PA12, PA15};
53
use crate::gpio::gpiob::{PB0, PB10, PB11};
@@ -75,14 +73,12 @@ macro_rules! impl_faults {
7573
)+) => {$(
7674

7775
// This should NOT be Copy/Clone
78-
pub struct $input {
79-
pub(crate) _x: PhantomData<()>
80-
}
76+
#[non_exhaustive]
77+
pub struct $input;
8178

79+
#[non_exhaustive]
8280
#[derive(Copy, Clone)]
83-
pub struct $source {
84-
_x: PhantomData<()>
85-
}
81+
pub struct $source;
8682

8783
impl $input {
8884
pub fn bind_pin<IM>(self, pin: $pin<gpio::Input<IM>>) -> SourceBuilder<$input> {
@@ -127,9 +123,7 @@ macro_rules! impl_faults {
127123
common.$fltinrZ().modify(|_r, w| w.$fltWlck().set_bit());
128124
}
129125

130-
$source {
131-
_x: PhantomData
132-
}
126+
$source
133127
}
134128

135129
pub fn polarity(mut self, polarity: super::Polarity) -> Self {
@@ -173,12 +167,12 @@ pub struct FaultInputs {
173167
impl FaultInputs {
174168
pub(crate) unsafe fn new() -> Self {
175169
FaultInputs {
176-
fault_input1: FaultInput1 { _x: PhantomData },
177-
fault_input2: FaultInput2 { _x: PhantomData },
178-
fault_input3: FaultInput3 { _x: PhantomData },
179-
fault_input4: FaultInput4 { _x: PhantomData },
180-
fault_input5: FaultInput5 { _x: PhantomData },
181-
fault_input6: FaultInput6 { _x: PhantomData },
170+
fault_input1: FaultInput1,
171+
fault_input2: FaultInput2,
172+
fault_input3: FaultInput3,
173+
fault_input4: FaultInput4,
174+
fault_input5: FaultInput5,
175+
fault_input6: FaultInput6,
182176
}
183177
}
184178
}
@@ -243,9 +237,8 @@ pub enum FaultSamplingFilter {
243237

244238
macro_rules! impl_flt_monitor {
245239
($($t:ident: ($fltx:ident, $fltxc:ident, $fltxie:ident),)+) => {$(
246-
pub struct $t {
247-
pub(crate) _x: PhantomData<()>
248-
}
240+
#[non_exhaustive]
241+
pub struct $t;
249242

250243
impl FaultMonitor for $t {
251244
fn enable_interrupt(&mut self, _hr_control: &mut HrPwmCtrl) {

0 commit comments

Comments
 (0)