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}