From 61b4a3b76edbae86b9ff8e2b36497b7d4fbad6d5 Mon Sep 17 00:00:00 2001 From: ChristianVisintin Date: Fri, 18 Dec 2020 16:14:23 +0100 Subject: [PATCH] Log how long it took to download/upload a file --- .../activities/filetransfer_activity/session.rs | 11 +++++++---- src/utils.rs | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/ui/activities/filetransfer_activity/session.rs b/src/ui/activities/filetransfer_activity/session.rs index bf4865b..e23657b 100644 --- a/src/ui/activities/filetransfer_activity/session.rs +++ b/src/ui/activities/filetransfer_activity/session.rs @@ -20,6 +20,7 @@ */ use super::{FileTransferActivity, FsEntry, InputMode, LogLevel, PopupType}; +use crate::utils::fmt_millis; use std::io::{Read, Seek, Write}; use std::path::{Path, PathBuf}; @@ -239,9 +240,10 @@ impl FileTransferActivity { self.log( LogLevel::Info, format!( - "Saved file \"{}\" to \"{}\"", + "Saved file \"{}\" to \"{}\" (took {} seconds)", file.abs_path.display(), - remote_path.display() + remote_path.display(), + fmt_millis(self.transfer.started.elapsed()), ) .as_ref(), ); @@ -548,9 +550,10 @@ impl FileTransferActivity { self.log( LogLevel::Info, format!( - "Saved file \"{}\" to \"{}\"", + "Saved file \"{}\" to \"{}\" (took {} seconds)", file.abs_path.display(), - local_file_path.display() + local_file_path.display(), + fmt_millis(self.transfer.started.elapsed()), ) .as_ref(), ); diff --git a/src/utils.rs b/src/utils.rs index fa3b68d..fe1b0c4 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -203,6 +203,15 @@ pub fn time_to_str(time: SystemTime, fmt: &str) -> String { format!("{}", datetime.format(fmt)) } +/// ### fmt_millis +/// +/// Format duration as {secs}.{millis} +pub fn fmt_millis(duration: Duration) -> String { + let seconds: u128 = duration.as_millis() / 1000; + let millis: u128 = duration.as_millis() % 1000; + format!("{}.{:0width$}", seconds, millis, width = 3) +} + /// ### lstime_to_systime /// /// Convert ls syntax time to System Time @@ -431,4 +440,11 @@ mod tests { String::from("hello world!") ); } + + #[test] + fn test_utils_fmt_millis() { + assert_eq!(fmt_millis(Duration::from_millis(2048)), String::from("2.048")); + assert_eq!(fmt_millis(Duration::from_millis(8192)), String::from("8.192")); + assert_eq!(fmt_millis(Duration::from_millis(18192)), String::from("18.192")); + } }