dicer

Crates.iodicer
lib.rsdicer
version1.0.2
sourcesrc
created_at2021-04-02 22:16:45.525574
updated_at2021-12-19 15:29:08.388625
descriptionDice Roller
homepagehttps://github.com/gnullByte/dicer
repositoryhttps://github.com/gnullByte/dicer
max_upload_size
id377887
size42,502
Chase Franklin (franklincm)

documentation

README

Dicer

version 1.0.1

About

A simple library for evaluating strings representing dice rolls in rust. Dicer uses an LL(1) grammar and a recursive descent parser to parse strings and simulate randomly rolled dice. See grammar.md for examples of valid strings.

Example

use dicer::eval;

fn main() {
    // simple expression
    let test = String::from("1d20 + 4 + min([2d4-MAX], 3) {3}");
    println!("parse: \"{}\"\n", test);

    let result = eval(&test).unwrap();
    for res in result {
        println!("{} = {}", res.str, res.value);
    }
}

output:

parse: "1d20 * (3+2) + min([2d4 - MAX], 3)"

(6) * (3 + 2) + min([ (3 + 1) -3 ], 3) = 31
Commit count: 134

cargo fmt