kingmaker 0.1.0

A modular, performant, social choice framework for the simulation, computation, and analysis of strategic voting.
Documentation
1
2
3
4
5
6
7
8
9
10
11
use std::fmt::Debug;

use crate::core::Ballot;

/// A tactic is a method of altering one's ballot to maximize (or at least increase) social welfare.
///
/// Note that this implementation considers tactics to be a separate process that occurs *after* realization. This is a limitation of the model.
pub trait Tactic<B: Ballot>: Send + Sync + Debug {
    /// Applies the tactic to the given ballot.
    fn apply(&self, ballot: B) -> B;
}