#[cfg(test)]
mod test_environment_scoped {
use sif::parameterized;
enum NPC {
Andre,
Lautrec,
Siegmeyer,
Solaire,
}
trait Home {
fn reigns_from(&self) -> &str;
}
impl Home for NPC {
fn reigns_from(&self) -> &str {
match self {
NPC::Solaire | NPC::Andre => "Astora",
NPC::Lautrec => "Carim",
NPC::Siegmeyer => "Catarina",
}
}
}
#[parameterized]
#[case(NPC::Andre, "Astora")]
#[case(NPC::Lautrec, "Carim")]
#[case(NPC::Siegmeyer, "Catarina")]
#[case(NPC::Solaire, "Astrora")]
fn npc_reigns_from_test(npc: NPC, place: &str) {
assert_eq!(npc.reigns_from(), place)
}
}
#[cfg(not(test))]
fn main() {
use std::io::Write;
let source = include_bytes!("usage.rs");
eprintln!("Please pipe the stdout of this executable to an environment where you can run it with cfg(test) enabled (or copy the source in examples/usage.rs instead of piping it)");
std::io::stdout()
.write(source)
.expect("Unable to write to stdout");
}