use serde::{Deserialize, Serialize};
/// Role of a coefficient block within a multi-parameter model.
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum BlockRole {
/// Single-parameter GAM (standard GLM/GAM mean model).
Mean,
/// Location parameter in GAMLSS / survival location-scale.
Location,
/// Scale (log-sigma) parameter in GAMLSS / survival location-scale.
Scale,
/// Time/baseline hazard block in survival models.
Time,
/// Threshold block in survival models.
Threshold,
/// Link-wiggle correction block.
LinkWiggle,
}
impl BlockRole {
#[inline]
pub const fn name(self) -> &'static str {
match self {
Self::Mean => "mean",
Self::Location => "location",
Self::Scale => "scale",
Self::Time => "time",
Self::Threshold => "threshold",
Self::LinkWiggle => "link-wiggle",
}
}
}