chiark / gitweb /
ui: Break out player_dasharray
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 12 Jan 2021 18:28:37 +0000 (18:28 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 12 Jan 2021 20:18:59 +0000 (20:18 +0000)
otterlib preview wants it

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/imports.rs
src/ui.rs
src/updates.rs

index c1fd183bf95e56d6c72b68d1b7732d3c6cf93a3b..155f4f7006b9b05e60eb30dc3fd0f3ffbd87854d 100644 (file)
@@ -24,7 +24,7 @@ pub use std::iter;
 pub use std::iter::repeat_with;
 pub use std::marker::PhantomData;
 pub use std::mem;
-pub use std::num::{TryFromIntError, Wrapping};
+pub use std::num::{NonZeroUsize, TryFromIntError, Wrapping};
 pub use std::ops::{Deref, DerefMut};
 pub use std::os::unix;
 pub use std::os::unix::ffi::OsStrExt;
index 00ce792a98a2a9cf15aefc2575477e266f761bf8..a411edbabd8521cd0a92bd16db7a361e1957aad3 100644 (file)
--- a/src/ui.rs
+++ b/src/ui.rs
@@ -16,6 +16,19 @@ pub enum PresentationLayout {
 
 type PL = PresentationLayout;
 
+pub fn player_dasharray(player_num: NonZeroUsize) -> String {
+  let n: usize = player_num.into();
+  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(' '));
+  dasharray
+}
+
 impl PresentationLayout {
   pub fn template(self) -> &'static str {
     match self {
index 4c38a6465df4fa84851a9ee2e41739bb4c5e09b4..9a0f43194082024439c59582cc1416780d8b71fe 100644 (file)
@@ -225,15 +225,7 @@ impl DataLoadPlayer {
     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(' '));
+    let dasharray = player_dasharray(n.try_into().unwrap());
     DataLoadPlayer {
       dasharray,
     }