one-d-six

Crates.ioone-d-six
lib.rsone-d-six
version0.5.0
sourcesrc
created_at2019-08-12 16:30:14.973056
updated_at2019-08-29 15:04:47.641948
descriptionLibrary for rolling some dice
homepage
repositoryhttps://github.com/spenserblack/one-d-six-rs
max_upload_size
id156159
size36,499
Spenser Black (spenserblack)

documentation

README

One D Six

Crates.io docs.rs dependency status Crates.io downloads Crates.io downloads of latest version License

GitHub Release Date GitHub commits since latest release

Rolls some dice

Usage

From Command Line

# Install
cargo install one-d-six

# Print help
one-d-six -h

# Print total of each dice
one-d-six 3d4 2d6 1d20

# Print each die cast of each dice roll
one-d-six --complex 2d20 1d12

As Library

This is not complete usage documentation. This is the expected most common usage.

use one_d_six::{
  quickroll,
  Dice,
};

// Quickly generates a set of Dice and rolls them
// quickroll can return any int type (i8 - isize, u8 - usize)
let coinflip: u8 = quickroll("1d2");
if coinflip == 1 {
    println!("Heads!");
} else {
    println!("Tails!");
}

// Creating sets of dice
let set_1 = Dice::new(2, 4); // Creates 2d4 with Dice::new
let set_2 = "1d20".parse().unwrap(); // Creates 1d20 by parsing str

// Combining sets of dice
let mut dice = set_1 + set_2; // Creates 2d4 + 1d20

// Prints 50 rolls of the dice set
for _ in 0..50 {
    // Method 1: Printing Dice struct
    println!("2d4 + 1d20: {}", dice.roll_all());

    // Method 2: Printing value of Dice::total(&self)
    let total = dice.total();
    println!("2d4 + 1d20: {}", total);
}

// Getting value of each die cast
let _results = format!("{:?}", dice);

Want to roll for your own custom type? Just implement one_d_six::Rollable on MyCustomType, and then you can create a new Die<MyCustomType>!

Commit count: 127

cargo fmt