use std::fmt;
use serde::{Deserialize, Serialize};
use super::{CapabilityMapV1, StringWebcIdent};
#[doc(inline)]
pub use wcgi_host::CgiDialect;
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug, schemars::JsonSchema)]
pub struct WorkloadV2 {
pub source: StringWebcIdent,
#[serde(default)]
pub capabilities: CapabilityMapV1,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum RunnerKind {
Wasi,
Wcgi,
}
impl RunnerKind {
pub fn ipv6_only(&self) -> bool {
match self {
Self::Wcgi => true,
_ => false,
}
}
}
impl fmt::Display for RunnerKind {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::Wasi => write!(f, "wasi"),
Self::Wcgi => write!(f, "wcgi"),
}
}
}