finis exersise 8.3
This commit is contained in:
@@ -52,37 +52,44 @@ impl<'a, T: OutputPin> Toggle<T> for ToggleLed<'a, T> {
|
||||
pub struct Leds<'a,
|
||||
RP: OutputPin, RT: Toggle<RP>,
|
||||
GP: OutputPin, GT: Toggle<GP>,
|
||||
OP: OutputPin, OT: Toggle<OP>,
|
||||
BP: OutputPin, BT: Toggle<BP>
|
||||
> {
|
||||
pub red: &'a mut RT,
|
||||
pub green: &'a mut GT,
|
||||
pub orange: &'a mut OT,
|
||||
pub blue: &'a mut BT,
|
||||
|
||||
// phantom data to convince rustc the generics RP, GP and BP are used.
|
||||
_r: PhantomData<RP>,
|
||||
_g: PhantomData<GP>,
|
||||
_o: PhantomData<OP>,
|
||||
_b: PhantomData<BP>,
|
||||
}
|
||||
impl<'a,
|
||||
RP: OutputPin, RT: Toggle<RP>,
|
||||
GP: OutputPin, GT: Toggle<GP>,
|
||||
OP: OutputPin, OT: Toggle<OP>,
|
||||
BP: OutputPin, BT: Toggle<BP>
|
||||
> Leds<'a, RP, RT, GP, GT, BP, BT> {
|
||||
pub fn new(red: &'a mut RT, green: &'a mut GT, blue: &'a mut BT) -> Self {
|
||||
> Leds<'a, RP, RT, GP, GT, OP, OT, BP, BT> {
|
||||
pub fn new(red: &'a mut RT, green: &'a mut GT, orange: &'a mut OT, blue: &'a mut BT) -> Self {
|
||||
Self {
|
||||
red,
|
||||
green,
|
||||
orange,
|
||||
blue,
|
||||
|
||||
_r: PhantomData,
|
||||
_g: PhantomData,
|
||||
_o: PhantomData,
|
||||
_b: PhantomData,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn set_all(&mut self, red: PinState, green: PinState, blue: PinState) {
|
||||
pub fn set_all(&mut self, red: PinState, green: PinState, orange: PinState, blue: PinState) {
|
||||
let _ = self.red.set(red);
|
||||
let _ = self.blue.set(blue);
|
||||
let _ = self.orange.set(orange);
|
||||
let _ = self.green.set(green);
|
||||
let _ = self.blue.set(blue);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user