chiark / gitweb /
at-currency: Break out move_money
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 21 May 2022 12:17:24 +0000 (13:17 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 21 May 2022 12:17:24 +0000 (13:17 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
apitest/at-currency.rs

index 6bf7123aa56f6353c54531f3364bed5c31d47d5e..2b63264aa600d82d8bce8ed441c31be76bf78cff 100644 (file)
@@ -6,6 +6,17 @@ use crate::*;
 
 type Ctx = UsualCtx;
 
+#[throws(Explode)]
+fn move_money<PI:Idx>(alice: &mut Session,
+                      a_pieces: &mut Pieces<PI>, piece: PI,
+                      qty: i32, z: &str, pos: Pos) {
+  alice.api_piece_op_single(PuSynch((&mut *a_pieces, piece)).id(), (
+    "multigrab", json!({ "n": qty, 'z': z })
+  ))?;
+
+  alice.api_piece(GH::Ungrab, PuSynch((&mut *a_pieces, piece)), pos)?;
+}
+
 impl Ctx {
   #[throws(Explode)]
   fn multigrab(&mut self) {
@@ -67,11 +78,8 @@ impl Ctx {
     alice.synchu(&mut a_pieces)?;
 
     let bank = a_pieces.find_by_desc_glob("*400ƒ*");
-    alice.api_piece_op_single(PuSynch((&mut a_pieces, bank)).id(), (
-      "multigrab", json!({ "n": 399, 'z': "u000000000" })
-    ))?;
 
-    alice.api_piece(GH::Ungrab, PuSynch((&mut a_pieces, bank)), hand_pos)?;
+    move_money(&mut alice, &mut a_pieces, bank, 399, "u000000000", hand_pos)?;
     alice.synchu(&mut a_pieces)?;
     
     let _ = &mut bob;