use serde::{Deserialize, Serialize};
use std::fmt;
#[allow(non_camel_case_types)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum CargoFeature {
feature_conformance_basic,
feature_conformance_full,
feature_console_error_panic_hook,
feature_discovery_advanced,
feature_gpu,
feature_hand_rolled_stats,
feature_ml,
feature_ocel,
feature_powl,
feature_rayon,
feature_statrs,
feature_streaming_basic,
feature_streaming_full,
}
impl CargoFeature {
pub fn id(&self) -> &'static str {
match self {
Self::feature_conformance_basic => "feature-conformance-basic",
Self::feature_conformance_full => "feature-conformance-full",
Self::feature_console_error_panic_hook => "feature-console-error-panic-hook",
Self::feature_discovery_advanced => "feature-discovery-advanced",
Self::feature_gpu => "feature-gpu",
Self::feature_hand_rolled_stats => "feature-hand-rolled-stats",
Self::feature_ml => "feature-ml",
Self::feature_ocel => "feature-ocel",
Self::feature_powl => "feature-powl",
Self::feature_rayon => "feature-rayon",
Self::feature_statrs => "feature-statrs",
Self::feature_streaming_basic => "feature-streaming-basic",
Self::feature_streaming_full => "feature-streaming-full",
}
}
pub fn label(&self) -> &'static str {
match self {
Self::feature_conformance_basic => "conformance_basic",
Self::feature_conformance_full => "conformance_full",
Self::feature_console_error_panic_hook => "console_error_panic_hook",
Self::feature_discovery_advanced => "discovery_advanced",
Self::feature_gpu => "gpu",
Self::feature_hand_rolled_stats => "hand_rolled_stats",
Self::feature_ml => "ml",
Self::feature_ocel => "ocel",
Self::feature_powl => "powl",
Self::feature_rayon => "rayon",
Self::feature_statrs => "statrs",
Self::feature_streaming_basic => "streaming_basic",
Self::feature_streaming_full => "streaming_full",
}
}
pub fn all() -> &'static [Self] {
&[
Self::feature_conformance_basic,
Self::feature_conformance_full,
Self::feature_console_error_panic_hook,
Self::feature_discovery_advanced,
Self::feature_gpu,
Self::feature_hand_rolled_stats,
Self::feature_ml,
Self::feature_ocel,
Self::feature_powl,
Self::feature_rayon,
Self::feature_statrs,
Self::feature_streaming_basic,
Self::feature_streaming_full,
]
}
}
impl fmt::Display for CargoFeature {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", self.id())
}
}