summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2019-03-08 23:17:02 +0100
committerReiner Herrmann <reiner@reiner-h.de>2019-03-08 23:25:05 +0100
commit844d1aec17beb9019a21a2bca361e50175b4121c (patch)
treefac28f4eb355c64188760dd86d136bf9713a5f0a
parent048c513204ec3ee2f85c6667590ae644b46f92e0 (diff)
Use a type for the progress callback
-rw-r--r--src/lib.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 659e2df..e97717d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -13,6 +13,12 @@ use std::time::Duration;
pub static VERSION: Option<&str> = option_env!("CARGO_PKG_VERSION");
+/// * `cur` - current number of bytes
+/// * `total` - total number of bytes; 0 if unknown
+/// * `state` - state that was returned in previous call
+/// Returns state that should get passed in next invocation
+type ProgressCallback = fn(cur: u64, total: u64, state: u64) -> u64;
+
#[repr(u16)]
pub enum Opcodes {
RRQ = 0x01,
@@ -33,7 +39,7 @@ pub struct TftpOptions {
#[derive(Clone, Copy)]
pub struct Tftp {
options: TftpOptions,
- progress_cb: Option<fn(u64, u64, u64) -> u64>,
+ progress_cb: Option<ProgressCallback>,
}
fn default_options() -> TftpOptions {
@@ -73,7 +79,7 @@ impl Tftp {
Some((val, len))
}
- pub fn set_progress_callback(&mut self, cb: fn(u64, u64, u64) -> u64) {
+ pub fn set_progress_callback(&mut self, cb: ProgressCallback) {
self.progress_cb = Some(cb);
}