chiark / gitweb /
provide dasharray
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 12 Jul 2020 01:24:27 +0000 (02:24 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 12 Jul 2020 01:24:27 +0000 (02:24 +0100)
src/session.rs

index 8c17863af3b3e043d9213af61ae1da0dba7c4db8..fa13f7ac7b23ba20f8c36e02ae4984f54239ff7f 100644 (file)
@@ -62,7 +62,19 @@ fn session(form : Json<SessionForm>) -> Result<Template,OE> {
 
     let mut load_players = HashMap::new();
     for (player, _pl) in &ig.gs.players {
-      let dasharray = String::new();
+      let kd : slotmap::KeyData = player.into();
+      let n = kd.get_idx_version().0;
+      let n = if n != 0 { n.try_into().unwrap() }
+              else { ig.gs.players.capacity() };
+      assert!(n != 0);
+      let mut dasharray = String::with_capacity(n*3 + 4);
+      for dash in iter::once("3").chain(
+        iter::repeat("1").take(n-1))
+      {
+        write!(&mut dasharray, "{} 1 ", &dash).unwrap();
+      }
+      let spc = dasharray.pop();
+      assert_eq!(spc,Some(' '));
 
       load_players.insert(player, DataLoadPlayer {
         dasharray,