conspire 0.7.0

The Rust interface to conspire.
Documentation
use crate::{
    geometry::mesh::{Connectivity, Mesh, Output},
    io::Write,
};

#[test]
fn two_cubes() {
    let connectivities = vec![
        Connectivity::Hexahedral(vec![[0, 1, 4, 3, 6, 7, 10, 9]].into()),
        Connectivity::Hexahedral(vec![[1, 2, 5, 4, 7, 8, 11, 10]].into()),
    ];
    let coordinates = vec![
        [0.0, 0.0, 0.0],
        [1.0, 0.0, 0.0],
        [2.0, 0.0, 0.0],
        [0.0, 1.0, 0.0],
        [1.0, 1.0, 0.0],
        [2.0, 1.0, 0.0],
        [0.0, 0.0, 1.0],
        [1.0, 0.0, 1.0],
        [2.0, 0.0, 1.0],
        [0.0, 1.0, 1.0],
        [1.0, 1.0, 1.0],
        [2.0, 1.0, 1.0],
    ]
    .into();
    let mesh = Mesh::from((connectivities, coordinates));
    mesh.write(Output::Exodus("target/two_cubes.exo")).unwrap()
}

#[test]
fn two_polys() {
    let connectivities = vec![
        Connectivity::Polyhedral(
            (
                vec![vec![0, 1, 2, 3, 4, 5]],
                vec![
                    vec![0, 1, 4, 3],
                    vec![6, 7, 10, 9],
                    vec![0, 1, 7, 6],
                    vec![1, 4, 10, 7],
                    vec![4, 3, 9, 10],
                    vec![3, 0, 6, 9],
                ],
            )
                .into(),
        ),
        Connectivity::Polyhedral(
            (
                vec![vec![0, 1, 2, 3, 4, 5]],
                vec![
                    vec![1, 2, 5, 4],
                    vec![7, 8, 11, 10],
                    vec![1, 2, 8, 7],
                    vec![2, 5, 11, 8],
                    vec![5, 4, 10, 11],
                    vec![4, 1, 7, 10],
                ],
            )
                .into(),
        ),
    ];
    let coordinates = vec![
        [0.0, 0.0, 0.0],
        [1.0, 0.0, 0.0],
        [2.0, 0.0, 0.0],
        [0.0, 1.0, 0.0],
        [1.0, 1.0, 0.0],
        [2.0, 1.0, 0.0],
        [0.0, 0.0, 1.0],
        [1.0, 0.0, 1.0],
        [2.0, 0.0, 1.0],
        [0.0, 1.0, 1.0],
        [1.0, 1.0, 1.0],
        [2.0, 1.0, 1.0],
    ]
    .into();
    let mesh = Mesh::from((connectivities, coordinates));
    mesh.write(Output::Exodus("target/two_polys.exo")).unwrap()
}