pub trait RequestTimeoutable {
    type Output;

    /// Specify `timeout` value. Unit: second
    ///
    /// Panics if specified negative float value.
    fn append_request_timeout(self, timeout: f64) -> Self::Output;
}

macro_rules! request_timeoutable {
    ($($t:ty), +) => (
        $(impl RequestTimeoutable for $t {
            type Output = $t;

            fn append_request_timeout(mut self, timeout: f64) -> Self::Output {
                if !timeout.is_sign_positive() {
                    panic!("`timeout` should be positive 64bit float number.")
                }
                let string = format!("{}", timeout);
                self.arguments.insert("request_timeout".to_string(), string.clone());
                self
            }
        })+
    )
}

pub trait RequestTimeoutable {
    type Output;

    fn append_request_timeout(self, timeout: u64) -> Self::Output;
}

macro_rules! request_timeoutable {
    ($($t:ty), +) => (
        $(impl RequestTimeoutable for $t {
            type Output = $t;

            fn append_request_timeout(mut self, timeout: u64) -> Self::Output {
                let string = format!("{}", timeout);
                self.arguments.insert("request_timeout".to_string(), string.clone());
                self
            }
        })+
    )
}

--- 
+++ 
@@ -1,7 +1,10 @@
 pub trait RequestTimeoutable {
     type Output;
 
-    fn append_request_timeout(self, timeout: u64) -> Self::Output;
+    /// Specify `timeout` value. Unit: second
+    ///
+    /// Panics if specified negative float value.
+    fn append_request_timeout(self, timeout: f64) -> Self::Output;
 }
 
 macro_rules! request_timeoutable {
@@ -9,7 +12,10 @@
         $(impl RequestTimeoutable for $t {
             type Output = $t;
 
-            fn append_request_timeout(mut self, timeout: u64) -> Self::Output {
+            fn append_request_timeout(mut self, timeout: f64) -> Self::Output {
+                if !timeout.is_sign_positive() {
+                    panic!("`timeout` should be positive 64bit float number.")
+                }
                 let string = format!("{}", timeout);
                 self.arguments.insert("request_timeout".to_string(), string.clone());
                 self
request_timeoutable: Use 64bit float type to represent under 1 second value
