rufl 0.1.3

A powerful util function library for rust
Documentation
use super::rand;

/// Generate random string which only contains special chars
/// (!@#$%^&*()_+-=[]{}|;':\",./<>?).
///
/// # Arguments
///
/// * `length` - The char size of random string.
///
/// # Returns
///
/// Returns random string with specific length.
///
/// # Examples
///
/// ```
/// use rufl::random;
///
/// let symbol_str = random::symbol(6);
/// assert_eq!(6, symbol_str.len());
///
/// let symbol_chars: &str = "!@#$%^&*()_+-=[]{}|;':\",./<>?";
/// for c in symbol_str.chars() {
///     assert!(symbol_chars.contains(c))
/// }
/// ```

pub fn symbol(length: usize) -> String {
    rand::rand_string(rand::CharType::Symbol, length)
}

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

    #[test]
    fn test_symbol() {
        let symbol_str = symbol(6);

        assert_eq!(6, symbol_str.len());

        let symbol_chars: &str = "!@#$%^&*()_+-=[]{}|;':\",./<>?";
        for c in symbol_str.chars() {
            assert!(symbol_chars.contains(c))
        }

        assert_eq!("".to_string(), symbol(0));
    }
}