#[derive(Clone, Debug, Default)]
pub struct ExtensionCandidate {
pub(crate) fields: Vec<([u8; 2], Vec<u8>)>,
}
impl ExtensionCandidate {
pub fn new(fields: Vec<([u8; 2], Vec<u8>)>) -> Result<ExtensionCandidate, &'static str> {
match fields.iter().all(|(_, v)| v.len() <= 64) {
true => Ok(ExtensionCandidate { fields }),
false => Err("Values of fields must be less than 64 bytes in size"),
}
}
pub fn fields(&self) -> &[([u8; 2], Vec<u8>)] {
&self.fields
}
pub fn fields_mut(&mut self) -> &mut Vec<([u8; 2], Vec<u8>)> {
&mut self.fields
}
}