use super::generated::Board;
use crate::chip::ChipType;
impl Board {
pub fn gpios_for_socket_pin(&self, socket_pin: u8) -> &'static [u8] {
self.socket_pin_map()
.iter()
.find(|(pin, _)| *pin == socket_pin)
.map(|(_, gpios)| *gpios)
.unwrap_or(&[])
}
pub fn socket_pin_for_gpio(&self, gpio: u8) -> Option<u8> {
self.socket_pin_map()
.iter()
.find(|(_, gpios)| gpios.contains(&gpio))
.map(|(pin, _)| *pin)
}
pub fn gpios_for_x_pin(&self, x_pin: u8) -> &'static [u8] {
self.x_pin_map()
.iter()
.find(|(pin, _)| *pin == x_pin)
.map(|(_, gpios)| *gpios)
.unwrap_or(&[])
}
pub fn x_pin_for_gpio(&self, gpio: u8) -> Option<u8> {
self.x_pin_map()
.iter()
.find(|(_, gpios)| gpios.contains(&gpio))
.map(|(pin, _)| *pin)
}
pub fn allows_chip_type(&self, chip_type: ChipType) -> bool {
self.supports_chip_type(chip_type) || self.extra_chip_types().contains(&chip_type)
}
}