advanced-random-string 0.1.2

Provides advanced string generation based on given charsets, lengths, and RNGs.
Documentation
# advanced-random-string

`advanced-random-string` is a Rust library for generating random strings with customizable character sets. It supports both basic and cryptographically secure random number generators (RNGs).

## Features

- Generate random strings with customizable character sets.
- Use cryptographically secure RNGs for secure string generation.
- Allow users to specify their own RNGs for advanced use cases.
- Predefined character sets for convenience.

## Installation

Add `advanced-random-string` to your `Cargo.toml`:

```toml
[dependencies]
advanced-random-string = "0.1.2"
```

## Usage

### Generate a Random String with a Customizable Character Set

```rust
use advanced_random_string::{charset, generate};

let random_string = generate(10, charset::BASE62);
println!("Generated string: {}", random_string);

// Specify a custom charset
let charset = b"MY_CHARSET";
let random_string_with_custom_charset = generate(10, charset);
println!("Generated string: {}", random_string_with_custom_charset);
```

### Generate a Cryptographically Secure Random String

```rust
use advanced_random_string::{charset, generate_os_secure};

let random_string = generate_os_secure(10, charset::BASE62);
println!("Generated string: {}", random_string);
```

### Generate a Random String with a User-Specified RNG

```rust
use rand::SeedableRng;
use rand::rngs::SmallRng;
use advanced_random_string::{charset, generate_with_rng};

let mut rng = SmallRng::from_entropy();
let random_string = generate_with_rng(10, charset::BASE62, &mut rng);
println!("Generated string: {}", random_string);
```

## Predefined Character Sets

The library provides some predefined character sets for convenience:

- ALPHANUMERIC
- UPPERCASE
- LOWERCASE
- DIGITS
- HEXADECIMAL
- ALPHABETIC
- BASE62
- BASE64
- ASCII_PRINTABLE
- URLSAFE_BASE64
- BINARY
- OCTAL
- SYMBOLS
- WHITESPACE
- EXTENDED_ASCII

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.