use trezoa_pubkey::Pubkey;
#[cfg(feature = "serde")]
use {
serde_derive::{Deserialize, Serialize},
trezoa_short_vec as short_vec,
};
#[derive(Debug, Default)]
#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))]
pub struct ConfigKeys {
#[cfg_attr(feature = "serde", serde(with = "short_vec"))]
pub keys: Vec<(Pubkey, bool)>,
}
#[cfg(feature = "bincode")]
pub fn get_config_data(bytes: &[u8]) -> Result<&[u8], bincode::Error> {
bincode::deserialize::<ConfigKeys>(bytes)
.and_then(|keys| bincode::serialized_size(&keys))
.map(|offset| &bytes[offset as usize..])
}