У меня есть черта, которая обозначает разрешенные конфигурации выводов для микроконтроллера:
pub trait TimChannelsMapping<TIM>: Sized {
const MAPPING: u8;
}
Используется следующим образом:
//TIM1
impl<PINMODE1, PINMODE2, PINMODE3, PINMODE4> TimChannelsMapping<TIM1>
for (
Option<PA8<Alternate<PINMODE1>>>,
Option<PA9<Alternate<PINMODE2>>>,
Option<PA10<Alternate<PINMODE3>>>,
Option<PA11<Alternate<PINMODE4>>>,
)
{
}
Идея состоит в том, что я реализую только разрешенные конфигурациидля микроконтроллера.
Меня не волнует PINMODEx
, и их наличие усложняет использование этой черты, потому что даже для слотов кортежей, значение которых составляет None
, я должен передатьдовольно уродливый и сложный режим:
let pins = (Some(a6), Some(a7), Some(b0), None::<PB1<Alternate<OpenDrain>>>);
Мне бы хотелось, чтобы у меня было обозначение "все равно", или был бы способ задать значение по умолчанию.