championship

Generate championship fixtures using the round-robin tournament algorithm.

Examples

Even number of teams

```rust use championship::create_tournement;

[derive(Debug)]

[allow(dead_code)]

struct User { name: String, age: u8, }

fn main() { let list = vec![ User { name: "Alice".tostring(), age: 20, }, User { name: "Bob".tostring(), age: 21, }, User { name: "Carol".tostring(), age: 22, }, User { name: "Dan".tostring(), age: 23, }, ];

let res = create_tournement(&list, 2);

println!("{:#?}", res);
/*
    [
    [
        (
            User {
                name: "Alice",
                age: 20,
            },
            User {
                name: "Bob",
                age: 21,
            },
        ),
        (
            User {
                name: "Carol",
                age: 22,
            },
            User {
                name: "Dan",
                age: 23,
            },
        ),
    ],
    [
        (
            User {
                name: "Bob",
                age: 21,
            },
            User {
                name: "Carol",
                age: 22,
            },
        ),
        (
            User {
                name: "Dan",
                age: 23,
            },
            User {
                name: "Alice",
                age: 20,
            },
        ),
    ],
    [
        (
            User {
                name: "Carol",
                age: 22,
            },
            User {
                name: "Alice",
                age: 20,
            },
        ),
        (
            User {
                name: "Bob",
                age: 21,
            },
            User {
                name: "Dan",
                age: 23,
            },
        ),
    ],
    [
        (
            User {
                name: "Bob",
                age: 21,
            },
            User {
                name: "Alice",
                age: 20,
            },
        ),
        (
            User {
                name: "Dan",
                age: 23,
            },
            User {
                name: "Carol",
                age: 22,
            },
        ),
    ],
    [
        (
            User {
                name: "Carol",
                age: 22,
            },
            User {
                name: "Bob",
                age: 21,
            },
        ),
        (
            User {
                name: "Alice",
                age: 20,
            },
            User {
                name: "Dan",
                age: 23,
            },
        ),
    ],
    [
        (
            User {
                name: "Alice",
                age: 20,
            },
            User {
                name: "Carol",
                age: 22,
            },
        ),
        (
            User {
                name: "Dan",
                age: 23,
            },
            User {
                name: "Bob",
                age: 21,
            },
        ),
    ],
]
    */

}

```

Odd number of teams

```rust use championship::create_tournement;

fn main() { let list = vec![0, 1, 2, 3, 4];

let res = create_tournement(&list, 1);

println!("{:#?}", res);
/*
[
    [
        (
            0,
            3,
        ),
        (
            2,
            1,
        ),
    ],
    [
        (
            1,
            4,
        ),
        (
            3,
            2,
        ),
    ],
    [
        (
            2,
            0,
        ),
        (
            4,
            3,
        ),
    ],
    [
        (
            3,
            1,
        ),
        (
            0,
            4,
        ),
    ],
    [
        (
            4,
            2,
        ),
        (
            1,
            0,
        ),
    ],
]
    */

} ```