Expand description

A library for generating mock eiffel events that actually link back to something.

Glosary

Which events with what links will be generated is dictated by event_set::EventSet, you can view it as the template that is used to stamp out many events.
To actually generate events an generator::EventGenerator is needed with an event set along with a few more rules such as history limit, max link amount and a random seed.

use eiffelvis_gen::event_set::{EventSet, Link, Event};
use eiffelvis_gen::generator::EventGenerator;
let my_event_set = EventSet::build()
    .add_link(Link::new("Link0", false))
    .add_link(Link::new("Link1", true))
    .add_event(
       Event::new("Event", "1.0.0")
           .with_link("Link0")
           .with_req_link("Link1"),
    )
    .build()
    .expect("I reference existing links and events");

let seed = 123;
let max_links = 5;
let max_history = 100;
let generator = EventGenerator::new(seed, max_links, max_history, my_event_set);

/// Events can now be iterated over via .iter()
for event in generator.iter().take(100) {
    // Do something!   
}

Do note however that it is a never ending iterator; it only ever returns None when an impossible to generate event_set::EventSet is given. Always use in combination with Iterator::take if you want to collect it.

Modules

Vocabulary used to create eiffel events.
Types that are used to describe Events.
Generator that stamps out events.