revive_llvm_builder/
target_env.rs1#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Hash)]
5pub enum TargetEnv {
6 #[default]
8 GNU,
9 MUSL,
11 Emscripten,
13}
14
15impl std::str::FromStr for TargetEnv {
16 type Err = String;
17
18 fn from_str(value: &str) -> Result<Self, Self::Err> {
19 match value {
20 "gnu" => Ok(Self::GNU),
21 "musl" => Ok(Self::MUSL),
22 "emscripten" => Ok(Self::Emscripten),
23 value => Err(format!("Unsupported target environment: `{value}`")),
24 }
25 }
26}
27
28impl std::fmt::Display for TargetEnv {
29 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
30 match self {
31 Self::GNU => write!(f, "gnu"),
32 Self::MUSL => write!(f, "musl"),
33 Self::Emscripten => write!(f, "emscripten"),
34 }
35 }
36}