use strum_macros::EnumString;
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq, EnumString)]
pub enum Feature {
#[strum(disabled)]
None,
#[strum(serialize = "threads")]
Atomics,
#[strum(serialize = "mutable-globals")]
MutableGlobals,
#[strum(serialize = "nontrapping-float-to-int")]
TruncSat,
#[strum(serialize = "simd")]
Simd,
#[strum(serialize = "bulk-memory")]
BulkMemory,
#[strum(serialize = "sign-ext")]
SignExt,
#[strum(serialize = "exception-handling")]
ExceptionHandling,
#[strum(serialize = "tail-call")]
TailCall,
#[strum(serialize = "reference-types")]
ReferenceTypes,
#[strum(serialize = "multivalue")]
Multivalue,
#[strum(serialize = "gc")]
Gc,
#[strum(serialize = "memory64")]
Memory64,
#[strum(serialize = "relaxed-simd")]
RelaxedSimd,
#[strum(serialize = "extended-const")]
ExtendedConst,
#[strum(serialize = "strings")]
Strings,
#[strum(serialize = "multi-memory")]
MultiMemory,
#[strum(disabled)]
Mvp,
#[strum(disabled)]
Default,
#[strum(disabled)]
All,
}