protoflow_core/
parameter_descriptor.rs1use crate::prelude::{Cow, MaybeLabeled, Named, String};
4
5#[derive(Clone, Default, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
7#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
8pub struct ParameterDescriptor {
9 pub name: String,
11
12 #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
14 pub label: Option<String>,
15
16 #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
18 pub r#type: Option<String>,
19
20 #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
22 pub default_value: Option<String>,
23}
24
25impl Named for ParameterDescriptor {
26 fn name(&self) -> Cow<str> {
27 Cow::Borrowed(&self.name)
28 }
29}
30
31impl MaybeLabeled for ParameterDescriptor {
32 fn label(&self) -> Option<Cow<str>> {
33 self.label.as_deref().map(Cow::Borrowed)
34 }
35}