use heapless::{String, Vec}; pub const MAX_CONTACTS: usize = 20; pub const MAX_CONTACT_NAME_LENGTH: usize = 20; pub const MAX_CONTACT_CALLSIGN_LENGTH: usize = 10; #[derive(Debug, Clone)] pub struct Contact { pub callsign: String<MAX_CONTACT_CALLSIGN_LENGTH>, pub ssid: u8, pub name: String<MAX_CONTACT_NAME_LENGTH>, } impl Default for Contact { fn default() -> Self { Contact { callsign: String::new(), ssid: 0, name: String::new(), } } } #[derive(Debug)] pub struct ContactGroup { pub contacts: Vec<Contact, MAX_CONTACTS>, } impl Default for ContactGroup { fn default() -> Self { let mut contacts = Vec::new(); contacts .push(Contact { callsign: String::try_from("VA3QAK").unwrap(), ssid: 19, name: String::try_from("Adrian").unwrap(), }) .unwrap(); contacts .push(Contact { callsign: String::try_from("VE3SVF").unwrap(), ssid: 239, name: String::try_from("Sasha").unwrap(), }) .unwrap(); contacts .push(Contact { callsign: String::try_from("VE3KCN").unwrap(), ssid: 19, name: String::try_from("Cam").unwrap(), }) .unwrap(); Self { contacts } } }