use std::collections::HashMap;
use anchor_lang::prelude::{AccountInfo, Pubkey};
use light_merkle_tree_metadata::QueueType;
pub type QueueMap<'a, 'info> = HashMap<Pubkey, QueueBundle<'a, 'info>>;
pub struct QueueBundle<'a, 'info> {
pub queue_type: QueueType,
pub accounts: Vec<&'info AccountInfo<'info>>,
pub elements: Vec<&'a [u8; 32]>,
pub indices: Vec<u32>,
pub prove_by_index: Vec<bool>,
}
impl<'info> QueueBundle<'_, 'info> {
pub fn new(queue_type: QueueType, accounts: Vec<&'info AccountInfo<'info>>) -> Self {
Self {
queue_type,
accounts,
elements: Vec::new(),
indices: Vec::new(),
prove_by_index: Vec::new(),
}
}
}