init rust db backend
This commit is contained in:
61
lootalot_db/src/models.rs
Normal file
61
lootalot_db/src/models.rs
Normal file
@@ -0,0 +1,61 @@
|
||||
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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user