use alloc::string::String;
use derive_more::{Display, FromStr};
#[derive(Clone, Debug, Display, Default, Eq, FromStr, Hash, Ord, PartialEq, PartialOrd)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
#[cfg_attr(
feature = "serde",
serde(rename_all(serialize = "lowercase", deserialize = "lowercase"))
)]
#[non_exhaustive]
pub enum Language {
#[cfg(feature = "unstable")]
Ada,
#[cfg(feature = "unstable")]
C,
#[cfg(feature = "unstable")]
Clojure,
#[cfg(feature = "unstable")]
Cpp,
#[cfg(feature = "unstable")]
Crystal,
#[cfg(feature = "unstable")]
CSharp,
#[cfg(feature = "unstable")]
D,
Dart,
Elixir,
Erlang,
#[cfg(feature = "unstable")]
Fortran,
#[cfg(feature = "unstable")]
FSharp,
Gleam,
#[cfg(feature = "unstable")]
Go,
#[cfg(feature = "unstable")]
Haskell,
#[cfg(feature = "unstable")]
Java,
JavaScript,
#[cfg(feature = "unstable")]
Julia,
#[cfg(feature = "unstable")]
Kotlin,
#[cfg(feature = "unstable")]
Lisp,
#[cfg(feature = "unstable")]
Lua,
#[cfg(feature = "unstable")]
Mojo,
#[cfg(feature = "unstable")]
Nim,
#[cfg(feature = "unstable")]
Ocaml,
#[cfg(feature = "unstable")]
Perl,
#[cfg(feature = "unstable")]
Php,
Python,
#[cfg(feature = "unstable")]
R,
#[cfg(feature = "unstable")]
Racket,
#[cfg(feature = "unstable")]
Rhombus,
Ruby,
#[default]
Rust,
#[cfg(feature = "unstable")]
Scala,
#[cfg(feature = "unstable")]
Swift,
TypeScript,
#[cfg(feature = "unstable")]
Zig,
}