deterministic-finite-automaton 0.1.1

Simple generic implementation of a deterministic finite automaton
Documentation
  • Coverage
  • 0%
    0 out of 12 items documented0 out of 9 items with examples
  • Size
  • Source code size: 4.65 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.64 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • s-digiro

deterministic-finite-automaton

Rust implementation of a deterministic finite automaton

Wikipedia Link

usage:

// Accepts strings that contain 1 twice
let states = [0, 1, 2];
let alphabet = [0, 1];
let transition_fn = |s, c| match (s, c) {
    (0, 0) => 0,
    (0, 1) => 1,
    (1, 0) => 1,
    (1, 1) => 2,
    (2, 0) => 2,
    (2, 1) => 2,
    _ => panic!("Invalid (state, char)"),
};
let start_state = 0
let accept_states = [2];

let dfa = DFA::new(
    states,
    alphabet,
    transition_fn,
    start_state,
    accept_states,
);

assert!(dfa.input([1, 1, 0]) State::Accept(2));
assert!(dfa.input([0]) State::Reject(0));