chiark / gitweb /
progress: Break out into nascent module
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 11 May 2021 23:41:40 +0000 (00:41 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 11 May 2021 23:41:40 +0000 (00:41 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bundles.rs
src/commands.rs
src/lib.rs
src/packetframe.rs
src/prelude.rs
src/progress.rs [new file with mode: 0644]

index cc07d59d0b08333495e43b946ee88c6a06572f96..efdbecc28f73fecefee6e5d1e77d57fa7b2ad1e3 100644 (file)
@@ -437,9 +437,8 @@ where EH: BundleParseErrorHandling,
 }
 
 #[throws(LE)]
-fn process_bundle<W>(id: Id, instance: &InstanceName,
-                     _for_progress: &ResponseWriter<W>)
-where W: Write
+fn process_bundle(id: Id, instance: &InstanceName,
+                  _for_progress: &dyn ProgressReporter)
 {
   let dir = id.path_dir(instance);
   fs::create_dir(&dir)
index b17cafdc08839482dbf31b4a09bb11927431a267..b618ac2663a8f1508e709400b747b1c8b9e5bd07 100644 (file)
@@ -134,12 +134,6 @@ pub enum MgmtGameInstruction {
   // RemovePlayer { player: PlayerId },  todo, does a special setacl
 }
 
-#[derive(Debug,Clone,Serialize,Deserialize)]
-pub struct ProgressInfo {
-  count: usize,
-  of: usize,
-}
-
 #[derive(Debug,Serialize,Deserialize)]
 pub struct MgmtPlayerDetails {
   pub nick: Option<String>,
index 64ac7e942aa01dba87e44f4fbcc0ffdece61995d..4da24030c1042d9c4d5a0c21e291eb6709cb6b05 100644 (file)
@@ -32,6 +32,7 @@ pub mod packetframe;
 pub mod pcaliases;
 pub mod pcrender;
 pub mod pieces;
+pub mod progress;
 pub mod shapelib;
 pub mod spec;
 pub mod sse;
index 48b6b7ac57c807f1745c38bdeaca41402627c697..c31cf98e340cdb7cf1fa0e3dd07fa4a91ec8bfd7 100644 (file)
@@ -14,7 +14,6 @@
 //!    0xffffu16    marker, error!
 
 use crate::prelude::*;
-use crate::commands::ProgressInfo;
 
 // ---------- common ----------
 
index 221062a3f85bc818181d29d79fe205b70984eed7..69accabcdb8be8e92e8d806c7fe6ecc146c6ce85 100644 (file)
@@ -149,6 +149,7 @@ pub use crate::packetframe::{ReadExt};
 pub use crate::pcaliases::*;
 pub use crate::pcrender::*;
 pub use crate::pieces::*;
+pub use crate::progress::*;
 pub use crate::shapelib;
 pub use crate::shapelib::{CircleShape, RectShape};
 pub use crate::slotmap_slot_idx::*;
diff --git a/src/progress.rs b/src/progress.rs
new file mode 100644 (file)
index 0000000..3054486
--- /dev/null
@@ -0,0 +1,21 @@
+// Copyright 2020-2021 Ian Jackson and contributors to Otter
+// SPDX-License-Identifier: AGPL-3.0-or-later
+// There is NO WARRANTY.
+
+use crate::prelude::*;
+use crate::packetframe::ResponseWriter;
+
+#[derive(Debug,Clone,Serialize,Deserialize)]
+pub struct ProgressInfo {
+  pub count: usize,
+  pub of: usize,
+}
+
+pub trait ProgressReporter {
+}
+
+impl<W> ProgressReporter for ResponseWriter<'_, W> where W: Write {
+}
+
+impl ProgressReporter for () {
+}