rust_redlock 0.4.0

A Rust Redlock implementation for distributed, highly-available redis locks
Documentation
use std::time::Duration;
use rand::{self, Rng};

pub fn get_random_string(len: usize) -> String {
    rand::thread_rng()
        .gen_ascii_chars()
        .take(len)
        .collect::<String>()
}

pub fn num_milliseconds(duration: &Duration) -> u64 {
    let secs_part = duration.as_secs() * 1000;
    let nano_part = duration.subsec_nanos() / 1000_000;

    secs_part + nano_part as u64
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_get_random_string() {
        assert_eq!(get_random_string(32).len(), 32);
    }

    #[test]
    fn test_num_milliseconds() {
        assert_eq!(num_milliseconds(&Duration::from_millis(5010)), 5010);
        assert_eq!(num_milliseconds(&Duration::from_millis(0)), 0);
    }
}