1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/// Marauders is a library and command line tool for injecting amd maintaining inline mutations in source code.
///
/// The tool can be used targeting singular files as well as entire projects, analyzing files to identity
/// existing mutations, switching between them, and adding new ones.
///
/// The mutations use a comment-augmented syntax to identify the mutations and their variants.
///
/// ```rust
/// fn add(a: i32, b: i32) -> i32 {
/// /*| add_variation */
/// a + b
/// /*|| add_mutation_1 */
/// /*|
/// a - b
/// */
/// /*| add_mutation_2 */
/// /*|
/// a * b
/// */
/// /* |*/
/// }
/// ```
///
/// The users can invoke mutations by name, or a small DSL that expresses a set of mutations to apply. More details about the mutation
/// DSL can be found in the documentation of the `algebra` module.
/// The library is organized in the following modules:
///
/// * `algebra`: Contains the DSL for expressing mutations.
/// * `api`: Contains the library API for programmatic access.
pub use *;
/// * `code`: Contains the way marauders handle the code it analyzes and processes.
pub use *;
/// * `languages`: Contains the language specific details for marauders supported languages.
pub use *;
/// * `project`: Contains the logic and structures for handling marauders projects.
/// * `syntax`: Contains the different syntaxes for expressing mutants.
pub use *;
/// * `variation`: Contains the logic and structures for about variations.
pub use *;