impls chest content query, still working on the api...

This commit is contained in:
2019-06-20 15:28:06 +02:00
parent 48f71e048e
commit 472e24a62c
6 changed files with 73 additions and 19 deletions

View File

@@ -0,0 +1,64 @@
use crate::schema::players;
use crate::serde_derive::Serialize;
use crate::*;
#[derive(Debug, Queryable, Serialize)]
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 super::*;
use crate::tests;
#[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));
}
}