py32f0/py32f002b/gpioc/
moder.rs1pub struct R(crate::R<MODER_SPEC>);
3impl core::ops::Deref for R {
4 type Target = crate::R<MODER_SPEC>;
5 #[inline(always)]
6 fn deref(&self) -> &Self::Target {
7 &self.0
8 }
9}
10impl From<crate::R<MODER_SPEC>> for R {
11 #[inline(always)]
12 fn from(reader: crate::R<MODER_SPEC>) -> Self {
13 R(reader)
14 }
15}
16pub struct W(crate::W<MODER_SPEC>);
18impl core::ops::Deref for W {
19 type Target = crate::W<MODER_SPEC>;
20 #[inline(always)]
21 fn deref(&self) -> &Self::Target {
22 &self.0
23 }
24}
25impl core::ops::DerefMut for W {
26 #[inline(always)]
27 fn deref_mut(&mut self) -> &mut Self::Target {
28 &mut self.0
29 }
30}
31impl From<crate::W<MODER_SPEC>> for W {
32 #[inline(always)]
33 fn from(writer: crate::W<MODER_SPEC>) -> Self {
34 W(writer)
35 }
36}
37pub type MODE0_R = crate::FieldReader<u8, MODE0_A>;
39#[derive(Clone, Copy, Debug, PartialEq, Eq)]
43#[repr(u8)]
44pub enum MODE0_A {
45 Input = 0,
47 Output = 1,
49 Alternate = 2,
51 Analog = 3,
53}
54impl From<MODE0_A> for u8 {
55 #[inline(always)]
56 fn from(variant: MODE0_A) -> Self {
57 variant as _
58 }
59}
60impl MODE0_R {
61 #[inline(always)]
63 pub fn variant(&self) -> MODE0_A {
64 match self.bits {
65 0 => MODE0_A::Input,
66 1 => MODE0_A::Output,
67 2 => MODE0_A::Alternate,
68 3 => MODE0_A::Analog,
69 _ => unreachable!(),
70 }
71 }
72 #[inline(always)]
74 pub fn is_input(&self) -> bool {
75 *self == MODE0_A::Input
76 }
77 #[inline(always)]
79 pub fn is_output(&self) -> bool {
80 *self == MODE0_A::Output
81 }
82 #[inline(always)]
84 pub fn is_alternate(&self) -> bool {
85 *self == MODE0_A::Alternate
86 }
87 #[inline(always)]
89 pub fn is_analog(&self) -> bool {
90 *self == MODE0_A::Analog
91 }
92}
93pub type MODE0_W<'a, const O: u8> = crate::FieldWriterSafe<'a, u32, MODER_SPEC, u8, MODE0_A, 2, O>;
95impl<'a, const O: u8> MODE0_W<'a, O> {
96 #[inline(always)]
98 pub fn input(self) -> &'a mut W {
99 self.variant(MODE0_A::Input)
100 }
101 #[inline(always)]
103 pub fn output(self) -> &'a mut W {
104 self.variant(MODE0_A::Output)
105 }
106 #[inline(always)]
108 pub fn alternate(self) -> &'a mut W {
109 self.variant(MODE0_A::Alternate)
110 }
111 #[inline(always)]
113 pub fn analog(self) -> &'a mut W {
114 self.variant(MODE0_A::Analog)
115 }
116}
117pub use MODE0_R as MODE1_R;
119pub use MODE0_W as MODE1_W;
121impl R {
122 #[inline(always)]
124 pub fn mode0(&self) -> MODE0_R {
125 MODE0_R::new((self.bits & 3) as u8)
126 }
127 #[inline(always)]
129 pub fn mode1(&self) -> MODE1_R {
130 MODE1_R::new(((self.bits >> 2) & 3) as u8)
131 }
132}
133impl W {
134 #[inline(always)]
136 #[must_use]
137 pub fn mode0(&mut self) -> MODE0_W<0> {
138 MODE0_W::new(self)
139 }
140 #[inline(always)]
142 #[must_use]
143 pub fn mode1(&mut self) -> MODE1_W<2> {
144 MODE1_W::new(self)
145 }
146 #[inline(always)]
148 pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
149 self.0.bits(bits);
150 self
151 }
152}
153pub struct MODER_SPEC;
159impl crate::RegisterSpec for MODER_SPEC {
160 type Ux = u32;
161}
162impl crate::Readable for MODER_SPEC {
164 type Reader = R;
165}
166impl crate::Writable for MODER_SPEC {
168 type Writer = W;
169 const ZERO_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
170 const ONE_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
171}
172impl crate::Resettable for MODER_SPEC {
174 const RESET_VALUE: Self::Ux = 0xebff_ffff;
175}