pub struct EdgePreExecutionArguments {
definition: crate::wit::EdgeDefinition,
arguments: String,
metadata: String,
}
impl EdgePreExecutionArguments {
pub(crate) fn new(definition: crate::wit::EdgeDefinition, arguments: String, metadata: String) -> Self {
Self {
definition,
arguments,
metadata,
}
}
pub fn parent_type_name(&self) -> &str {
&self.definition.parent_type_name
}
pub fn field_name(&self) -> &str {
&self.definition.field_name
}
pub fn arguments<'a, T>(&'a self) -> Result<T, serde_json::Error>
where
T: serde::Deserialize<'a>,
{
serde_json::from_str(&self.arguments)
}
pub fn metadata<'a, T>(&'a self) -> Result<T, serde_json::Error>
where
T: serde::Deserialize<'a>,
{
serde_json::from_str(&self.metadata)
}
}