3 releases

0.1.2 Aug 19, 2022
0.1.1 Aug 18, 2022
0.1.0 Aug 18, 2022

#2009 in Algorithms

Download history 1/week @ 2024-01-14 19/week @ 2024-01-28 17/week @ 2024-02-04 38/week @ 2024-02-11 44/week @ 2024-02-18 180/week @ 2024-02-25 108/week @ 2024-03-03 68/week @ 2024-03-10 49/week @ 2024-03-17 2/week @ 2024-03-24 74/week @ 2024-03-31 61/week @ 2024-04-07 68/week @ 2024-04-14

208 downloads per month
Used in basic_trie

MIT license

115KB
1.5K SLoC

Randomizer

pipeline status coverage report Latest Release

Randomizer provides a simple implementation of creating random information, eg random string, and bytes. Thre are many randomization libraries for rust. They are often either complex to use and safe or they are easy to use, but have some significant descrpincies with the code, like using unsafe functions or unwrapping potential Error data. Due to this, i created this library to eliviate those problems.

Generation.

There are 2 (actually 3) types of byte generation. The underneath concept is to generate random bytes for both UTF8 strings and bytes or byte sequences. This generator breaks up the sequence of characters or bytes and from the sequence of combinations it will generate a series of random bytes. if the sequence of bytes are generated from a valid UTF8 string, then each letter can be seperated and used for generating a random sequence of the valid sequences of bytes. This allows for the byte -> UTF8 convertion to be almost infallible.

This also means that if the system is supplied with a set of words the generator can randomly put those words together into a sequence.

Usage

Generate a string

use randomizer::Randomizer;

let string = Randomizer::ALPHANUMERIC(6).string().unwrap();
assert_eq!(string.chars().count(), 6);
let string = Randomizer::new(6, Some("u")).string().unwrap();

assert_eq!(string, "uuuuuu");

Generate a byte value

use randomizer::{Charset, Randomizer};

let bytes = Randomizer::new(6, Some(Charset::AnyByte)).bytes().unwrap();

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

Generate custom word string

use randomizer::{Charset, Randomizer};

let string = Randomizer::new(6, Some(vec!["foo","bar"])).string().unwrap();

assert_eq!(string.chars().count(), 18);

Simple String generation with constants

its possible to generate a string using the simplification functions for different types

use randomizer::{Randomizer};

let string = Randomizer::ALPHABETICAL(6).string().unwrap();

assert_eq!(string.chars().count(), 6);

Dependencies

~35KB