1
- use crate :: { Node , NodeState } ;
1
+ use crate :: NodeState ;
2
2
3
3
pub enum DefaultForbidden { }
4
4
5
- pub struct ParameterOptions < ' a , T > {
6
- name : & ' a str ,
7
- default : Option < T > ,
8
- }
9
-
10
5
pub trait StructuredParametersMeta < T > : Sized {
11
6
fn declare_structured_ (
12
7
node : & NodeState ,
13
- options : ParameterOptions < T > ,
8
+ name : & str ,
9
+ default : Option < T > ,
14
10
) -> core:: result:: Result < Self , crate :: DeclarationError > ;
15
11
}
16
12
17
13
pub trait StructuredParameters : Sized {
18
14
fn declare_structured < T > (
19
15
node : & NodeState ,
20
- options : ParameterOptions < T > ,
16
+ name : & str ,
17
+ default : Option < T > ,
21
18
) -> core:: result:: Result < Self , crate :: DeclarationError >
22
19
where
23
20
Self : StructuredParametersMeta < T > ,
24
21
{
25
- Self :: declare_structured_ ( node, options )
22
+ Self :: declare_structured_ ( node, name , default )
26
23
}
27
24
}
28
25
impl < T : crate :: ParameterVariant > StructuredParameters for crate :: MandatoryParameter < T > { }
29
26
impl < T : crate :: ParameterVariant > StructuredParametersMeta < T > for crate :: MandatoryParameter < T > {
30
27
fn declare_structured_ (
31
28
node : & NodeState ,
32
- options : ParameterOptions < T > ,
29
+ name : & str ,
30
+ default : Option < T > ,
33
31
) -> 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 {
36
34
Some ( default) => builder. default ( default) ,
37
35
None => builder,
38
36
} ;
@@ -43,10 +41,11 @@ impl<T: crate::ParameterVariant> StructuredParameters for crate::ReadOnlyParamet
43
41
impl < T : crate :: ParameterVariant > StructuredParametersMeta < T > for crate :: ReadOnlyParameter < T > {
44
42
fn declare_structured_ (
45
43
node : & NodeState ,
46
- options : ParameterOptions < T > ,
44
+ name : & str ,
45
+ default : Option < T > ,
47
46
) -> 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 {
50
49
Some ( default) => builder. default ( default) ,
51
50
None => builder,
52
51
} ;
@@ -57,10 +56,11 @@ impl<T: crate::ParameterVariant> StructuredParameters for crate::OptionalParamet
57
56
impl < T : crate :: ParameterVariant > StructuredParametersMeta < T > for crate :: OptionalParameter < T > {
58
57
fn declare_structured_ (
59
58
node : & NodeState ,
60
- options : ParameterOptions < T > ,
59
+ name : & str ,
60
+ default : Option < T > ,
61
61
) -> 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 {
64
64
Some ( default) => builder. default ( default) ,
65
65
None => builder,
66
66
} ;
@@ -76,13 +76,7 @@ impl NodeState {
76
76
where
77
77
T : StructuredParameters + StructuredParametersMeta < T0 > ,
78
78
{
79
- T :: declare_structured (
80
- self ,
81
- ParameterOptions {
82
- name : name,
83
- default : None ,
84
- } ,
85
- )
79
+ T :: declare_structured ( self , name, None )
86
80
}
87
81
}
88
82
0 commit comments