#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(rename_all = "snake_case"))]
pub enum RefResolution {
Literal,
Resolved,
}
impl RefResolution {
pub const fn name(self) -> &'static str {
match self {
Self::Literal => "literal",
Self::Resolved => "resolved",
}
}
}
impl core::str::FromStr for RefResolution {
type Err = crate::UnknownVariant;
fn from_str(value: &str) -> Result<Self, Self::Err> {
match value {
"literal" => Ok(Self::Literal),
"resolved" => Ok(Self::Resolved),
_ => Err(crate::UnknownVariant::new(
"ref_resolution",
value,
&["literal", "resolved"],
)),
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct OperationAttribution {
pub op_index: u32,
pub ref_resolution: RefResolution,
}