From aa6b9c6a29a7c3f9b18ba9d9a79a4a951b197c3f Mon Sep 17 00:00:00 2001
From: librelois <c@elo.tf>
Date: Sat, 13 Mar 2021 23:11:14 +0100
Subject: [PATCH] feat: add req duration measurement

---
 src/commands/balance.rs       | 7 +++++++
 src/commands/current_ud.rs    | 6 ++++++
 src/commands/idty.rs          | 7 +++++++
 src/commands/members_count.rs | 5 +++++
 src/main.rs                   | 1 +
 5 files changed, 26 insertions(+)

diff --git a/src/commands/balance.rs b/src/commands/balance.rs
index 9e85a5e..b193663 100644
--- a/src/commands/balance.rs
+++ b/src/commands/balance.rs
@@ -23,11 +23,18 @@ pub(crate) fn balance<W: Write>(
     ud_unit: bool,
 ) -> anyhow::Result<()> {
     let pubkey_or_script = PubkeyOrScript::from_str(pubkey_or_script)?;
+
+    let req_time = Instant::now();
     if let Some(AccountBalance {
         amount,
         ud_amount_opt,
     }) = requestor.account_balance(gva_endpoint, &pubkey_or_script, ud_unit)?
     {
+        println!(
+            "The server responded in {} ms.",
+            req_time.elapsed().as_millis()
+        );
+
         if let Some(ud_amount) = ud_amount_opt {
             writeln!(
                 out,
diff --git a/src/commands/current_ud.rs b/src/commands/current_ud.rs
index c29a25b..72bab53 100644
--- a/src/commands/current_ud.rs
+++ b/src/commands/current_ud.rs
@@ -20,7 +20,13 @@ pub(crate) fn current_ud<W: Write>(
     out: &mut W,
     requestor: &GvaRequestor,
 ) -> anyhow::Result<()> {
+    let req_time = Instant::now();
     if let Some(current_ud) = requestor.current_ud(gva_endpoint)? {
+        println!(
+            "The server responded in {} ms.",
+            req_time.elapsed().as_millis()
+        );
+
         let int_part = current_ud / 100;
         let dec_part = current_ud % 100;
         writeln!(
diff --git a/src/commands/idty.rs b/src/commands/idty.rs
index ebe1fcb..10414ec 100644
--- a/src/commands/idty.rs
+++ b/src/commands/idty.rs
@@ -22,12 +22,19 @@ pub(crate) fn idty<W: Write>(
     requestor: &GvaRequestor,
 ) -> anyhow::Result<()> {
     let pubkey = PublicKey::from_base58(pubkey)?;
+
+    let req_time = Instant::now();
     if let Some(Idty {
         is_member,
         username,
         ..
     }) = requestor.idty_by_pubkey(gva_endpoint, pubkey)?
     {
+        println!(
+            "The server responded in {} ms.",
+            req_time.elapsed().as_millis()
+        );
+
         writeln!(out, "Found identity for pubkey:")?;
         writeln!(out, "username: {}", username)?;
         writeln!(out, "is_member: {}", is_member)?;
diff --git a/src/commands/members_count.rs b/src/commands/members_count.rs
index bcc8017..c4f5620 100644
--- a/src/commands/members_count.rs
+++ b/src/commands/members_count.rs
@@ -20,7 +20,12 @@ pub(crate) fn members_count<W: Write>(
     out: &mut W,
     requestor: &GvaRequestor,
 ) -> anyhow::Result<()> {
+    let req_time = Instant::now();
     let members_count = requestor.members_count(gva_endpoint)?;
+    println!(
+        "The server responded in {} ms.",
+        req_time.elapsed().as_millis()
+    );
 
     writeln!(
         out,
diff --git a/src/main.rs b/src/main.rs
index 67821f8..2aa77ca 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -46,6 +46,7 @@ use std::{
     io::{BufReader, Read, Write},
     path::PathBuf,
     str::FromStr,
+    time::Instant,
 };
 use structopt::StructOpt;
 
-- 
GitLab