62 lines
1.1 KiB
Rust
62 lines
1.1 KiB
Rust
use crate::*;
|
|
use crate::schema::players;
|
|
|
|
#[derive(Queryable)]
|
|
pub struct Player {
|
|
id: i32,
|
|
name: String,
|
|
debt: i32,
|
|
cp: i32,
|
|
sp: i32,
|
|
gp: i32,
|
|
pp: i32,
|
|
}
|
|
|
|
#[derive(Insertable)]
|
|
#[table_name="players"]
|
|
pub struct NewPlayer<'a> {
|
|
name: &'a str,
|
|
cp: i32,
|
|
sp: i32,
|
|
gp: i32,
|
|
pp: i32,
|
|
}
|
|
|
|
impl<'a> NewPlayer<'a> {
|
|
|
|
fn new(
|
|
name: &'a str,
|
|
wealth: Option<(i32,i32,i32,i32)>,
|
|
) -> Self {
|
|
let (cp,sp,gp,pp) = wealth.unwrap_or((0,0,0,0));
|
|
NewPlayer { name, cp, sp, gp, pp }
|
|
}
|
|
|
|
fn insert(&self) -> Result<(),()> {
|
|
Err(())
|
|
}
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use crate::tests;
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn new_player_only_with_name() {
|
|
let n = NewPlayer::new("Féfi", None);
|
|
assert_eq!(n.name, "Féfi");
|
|
assert_eq!(n.cp, 0);
|
|
assert_eq!(n.sp, 0);
|
|
assert_eq!(n.gp, 0);
|
|
assert_eq!(n.pp, 0);
|
|
}
|
|
|
|
#[test]
|
|
fn new_player_with_wealth() {
|
|
let initial_wealth = (1, 2, 3, 4);
|
|
let n = NewPlayer::new("Féfi", Some(initial_wealth));
|
|
assert_eq!(initial_wealth, (n.cp, n.sp, n.gp, n.pp));
|
|
}
|
|
}
|