vbox write
This commit is contained in:
parent
cf038f9626
commit
2c2e1dddbe
@ -75,6 +75,8 @@ impl Vbox {
|
|||||||
return Err(err_msg("too many vars bound"));
|
return Err(err_msg("too many vars bound"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
println!("{:?}", self.free);
|
||||||
|
|
||||||
self.free.get(i).ok_or(format_err!("no var at index {:?}", i))?;
|
self.free.get(i).ok_or(format_err!("no var at index {:?}", i))?;
|
||||||
|
|
||||||
self.bound.push(self.free.remove(i));
|
self.bound.push(self.free.remove(i));
|
||||||
@ -83,7 +85,7 @@ impl Vbox {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn vbox_write(vbox: Vbox, tx: &mut Transaction, account: &Account) -> Result<Vbox, Error> {
|
pub fn vbox_create(vbox: Vbox, tx: &mut Transaction, account: &Account) -> Result<Vbox, Error> {
|
||||||
let vbox_bytes = to_vec(&vbox)?;
|
let vbox_bytes = to_vec(&vbox)?;
|
||||||
|
|
||||||
let query = "
|
let query = "
|
||||||
@ -102,6 +104,27 @@ pub fn vbox_write(vbox: Vbox, tx: &mut Transaction, account: &Account) -> Result
|
|||||||
return Ok(vbox);
|
return Ok(vbox);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn vbox_write(vbox: Vbox, tx: &mut Transaction) -> Result<Vbox, Error> {
|
||||||
|
let vbox_bytes = to_vec(&vbox)?;
|
||||||
|
|
||||||
|
let query = "
|
||||||
|
UPDATE vbox
|
||||||
|
SET data = $1
|
||||||
|
WHERE id = $2
|
||||||
|
RETURNING id, account, data;
|
||||||
|
";
|
||||||
|
|
||||||
|
let result = tx
|
||||||
|
.query(query, &[&vbox_bytes, &vbox.id])?;
|
||||||
|
|
||||||
|
let _returned = result.iter().next().expect("no row returned");
|
||||||
|
|
||||||
|
// println!("{:?} wrote vbox", vbox.id);
|
||||||
|
|
||||||
|
return Ok(vbox);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
pub fn vbox_get(tx: &mut Transaction, game_id: Uuid, account: &Account) -> Result<Vbox, Error> {
|
pub fn vbox_get(tx: &mut Transaction, game_id: Uuid, account: &Account) -> Result<Vbox, Error> {
|
||||||
let query = "
|
let query = "
|
||||||
SELECT *
|
SELECT *
|
||||||
@ -127,17 +150,17 @@ pub fn vbox_get(tx: &mut Transaction, game_id: Uuid, account: &Account) -> Resul
|
|||||||
|
|
||||||
pub fn vbox_state(params: VboxStateParams, tx: &mut Transaction, account: &Account) -> Result<Vbox, Error> {
|
pub fn vbox_state(params: VboxStateParams, tx: &mut Transaction, account: &Account) -> Result<Vbox, Error> {
|
||||||
match vbox_get(tx, params.game_id, account) {
|
match vbox_get(tx, params.game_id, account) {
|
||||||
Ok(v) => Ok(v.fill()),
|
Ok(v) => Ok(v),
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
println!("{:?}", e);
|
println!("{:?}", e);
|
||||||
vbox_write(Vbox::new(account.id, params.game_id).fill(), tx, account)
|
vbox_create(Vbox::new(account.id, params.game_id).fill(), tx, account)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn vbox_discard(params: VboxDiscardParams, tx: &mut Transaction, account: &Account) -> Result<Vbox, Error> {
|
pub fn vbox_discard(params: VboxDiscardParams, tx: &mut Transaction, account: &Account) -> Result<Vbox, Error> {
|
||||||
let vbox = vbox_get(tx, params.game_id, account)?;
|
let vbox = vbox_get(tx, params.game_id, account)?;
|
||||||
return vbox_write(vbox.fill(), tx, account);
|
return vbox_write(vbox.fill(), tx);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn vbox_accept(params: VboxAcceptParams, tx: &mut Transaction, account: &Account) -> Result<Vbox, Error> {
|
pub fn vbox_accept(params: VboxAcceptParams, tx: &mut Transaction, account: &Account) -> Result<Vbox, Error> {
|
||||||
@ -145,7 +168,7 @@ pub fn vbox_accept(params: VboxAcceptParams, tx: &mut Transaction, account: &Acc
|
|||||||
|
|
||||||
vbox.accept(params.index)?;
|
vbox.accept(params.index)?;
|
||||||
|
|
||||||
return vbox_write(vbox, tx, account);
|
return vbox_write(vbox, tx);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn vbox_combine(params: VboxCombineParams, tx: &mut Transaction, account: &Account) -> Result<Vbox, Error> {
|
pub fn vbox_combine(params: VboxCombineParams, tx: &mut Transaction, account: &Account) -> Result<Vbox, Error> {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user