use std::collections::VecDeque; enum Action { NOTHING, GARRISON(u16), DROP_ALL, DROP(u16), DROP_ALL_BUT(u16), COLLECT_ALL, COLLECT(u16), COLLECT_ALL_BUT(u16), LOOP } struct Carrier { ships: u16, action_queue: VecDeque<(&star, Action)>, past_actions: VecDeque<(&star, Action)>, owner: &player }