}
#[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)
// 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>,
pub mod pcaliases;
pub mod pcrender;
pub mod pieces;
+pub mod progress;
pub mod shapelib;
pub mod spec;
pub mod sse;
//! 0xffffu16 marker, error!
use crate::prelude::*;
-use crate::commands::ProgressInfo;
// ---------- common ----------
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::*;
--- /dev/null
+// 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 () {
+}