Skip to main content

manabrew_engine/card/
token_create_table.rs

1use std::collections::HashMap;
2
3use crate::ids::{CardId, PlayerId};
4
5/// Compact token creation accumulator.
6/// Mirrors Java's table shape: owner x token -> amount.
7#[derive(Debug, Default, Clone)]
8pub struct TokenCreateTable {
9    data: HashMap<(PlayerId, CardId), i32>,
10}
11
12impl TokenCreateTable {
13    /// Add `amount` created tokens for `(owner, token)` and return new total.
14    pub fn add(&mut self, owner: PlayerId, token: CardId, amount: i32) -> i32 {
15        let entry = self.data.entry((owner, token)).or_insert(0);
16        *entry += amount;
17        *entry
18    }
19}