Skip to content

Commit 2ba7748

Browse files
committed
Remove parameter struct
1 parent 80ed497 commit 2ba7748

File tree

2 files changed

+27
-31
lines changed

2 files changed

+27
-31
lines changed

rclrs/src/parameter/structured.rs

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,36 @@
1-
use crate::{Node, NodeState};
1+
use crate::NodeState;
22

33
pub enum DefaultForbidden {}
44

5-
pub struct ParameterOptions<'a, T> {
6-
name: &'a str,
7-
default: Option<T>,
8-
}
9-
105
pub trait StructuredParametersMeta<T>: Sized {
116
fn declare_structured_(
127
node: &NodeState,
13-
options: ParameterOptions<T>,
8+
name: &str,
9+
default: Option<T>,
1410
) -> core::result::Result<Self, crate::DeclarationError>;
1511
}
1612

1713
pub trait StructuredParameters: Sized {
1814
fn declare_structured<T>(
1915
node: &NodeState,
20-
options: ParameterOptions<T>,
16+
name: &str,
17+
default: Option<T>,
2118
) -> core::result::Result<Self, crate::DeclarationError>
2219
where
2320
Self: StructuredParametersMeta<T>,
2421
{
25-
Self::declare_structured_(node, options)
22+
Self::declare_structured_(node, name, default)
2623
}
2724
}
2825
impl<T: crate::ParameterVariant> StructuredParameters for crate::MandatoryParameter<T> {}
2926
impl<T: crate::ParameterVariant> StructuredParametersMeta<T> for crate::MandatoryParameter<T> {
3027
fn declare_structured_(
3128
node: &NodeState,
32-
options: ParameterOptions<T>,
29+
name: &str,
30+
default: Option<T>,
3331
) -> core::result::Result<Self, crate::DeclarationError> {
34-
let builder = node.declare_parameter(options.name);
35-
let builder = match options.default {
32+
let builder = node.declare_parameter(name);
33+
let builder = match default {
3634
Some(default) => builder.default(default),
3735
None => builder,
3836
};
@@ -43,10 +41,11 @@ impl<T: crate::ParameterVariant> StructuredParameters for crate::ReadOnlyParamet
4341
impl<T: crate::ParameterVariant> StructuredParametersMeta<T> for crate::ReadOnlyParameter<T> {
4442
fn declare_structured_(
4543
node: &NodeState,
46-
options: ParameterOptions<T>,
44+
name: &str,
45+
default: Option<T>,
4746
) -> core::result::Result<Self, crate::DeclarationError> {
48-
let builder = node.declare_parameter(options.name);
49-
let builder = match options.default {
47+
let builder = node.declare_parameter(name);
48+
let builder = match default {
5049
Some(default) => builder.default(default),
5150
None => builder,
5251
};
@@ -57,10 +56,11 @@ impl<T: crate::ParameterVariant> StructuredParameters for crate::OptionalParamet
5756
impl<T: crate::ParameterVariant> StructuredParametersMeta<T> for crate::OptionalParameter<T> {
5857
fn declare_structured_(
5958
node: &NodeState,
60-
options: ParameterOptions<T>,
59+
name: &str,
60+
default: Option<T>,
6161
) -> core::result::Result<Self, crate::DeclarationError> {
62-
let builder = node.declare_parameter(options.name);
63-
let builder = match options.default {
62+
let builder = node.declare_parameter(name);
63+
let builder = match default {
6464
Some(default) => builder.default(default),
6565
None => builder,
6666
};
@@ -76,13 +76,7 @@ impl NodeState {
7676
where
7777
T: StructuredParameters + StructuredParametersMeta<T0>,
7878
{
79-
T::declare_structured(
80-
self,
81-
ParameterOptions {
82-
name: name,
83-
default: None,
84-
},
85-
)
79+
T::declare_structured(self, name, None)
8680
}
8781
}
8882

rclrs_proc_macros/src/impl.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,11 @@ pub(crate) fn derive_struct_parameters(input: DeriveInput) -> syn::Result<TokenS
6262
let r = quote! {
6363
#ident : #field_type::declare_structured(
6464
node,
65-
rclrs::parameter::structured::ParameterOptions {
66-
name: &{match options.name {
65+
&{match name {
6766
"" => #ident_str.to_string(),
6867
prefix => [prefix, ".", #ident_str].concat(),
69-
}},
70-
default: #default,
71-
}
68+
}},
69+
#default,
7270
)?,
7371
};
7472
args.push(r);
@@ -84,7 +82,11 @@ pub(crate) fn derive_struct_parameters(input: DeriveInput) -> syn::Result<TokenS
8482
};
8583
}
8684
impl rclrs::parameter::structured::StructuredParametersMeta<rclrs::parameter::structured::DefaultForbidden> for #ident {
87-
fn declare_structured_(node: &rclrs::NodeState, options: rclrs::parameter::structured::ParameterOptions<rclrs::parameter::structured::DefaultForbidden>)
85+
fn declare_structured_(
86+
node: &rclrs::NodeState,
87+
name: &str,
88+
default: Option<DefaultForbidden>,
89+
)
8890
-> core::result::Result<Self, crate::DeclarationError> {
8991
core::result::Result::Ok(Self{ #(#args)*})
9092
}

0 commit comments

Comments
 (0)