nrf/saadc: make Input trait sealed.

This commit is contained in:
Dario Nieuwenhuis 2021-10-13 22:01:39 +02:00
parent 0d709fa5c8
commit d8c3365d6a

View File

@ -228,17 +228,24 @@ impl<'d, const N: usize> Drop for OneShot<'d, N> {
} }
} }
/// An input that can be used as either or negative end of a ADC differential in the SAADC periperhal. pub(crate) mod sealed {
pub trait Input: Unborrow<Target = Self> { use super::*;
pub trait Input {
fn channel(&self) -> InputChannel; fn channel(&self) -> InputChannel;
}
} }
/// An input that can be used as either or negative end of a ADC differential in the SAADC periperhal.
pub trait Input: sealed::Input + Unborrow<Target = Self> {}
macro_rules! impl_saadc_input { macro_rules! impl_saadc_input {
($pin:ident, $ch:ident) => { ($pin:ident, $ch:ident) => {
impl crate::saadc::Input for crate::peripherals::$pin { impl crate::saadc::sealed::Input for crate::peripherals::$pin {
fn channel(&self) -> crate::saadc::InputChannel { fn channel(&self) -> crate::saadc::InputChannel {
crate::saadc::InputChannel::$ch crate::saadc::InputChannel::$ch
} }
} }
impl crate::saadc::Input for crate::peripherals::$pin {}
}; };
} }