@@ -28,7 +28,7 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
28
28
..
29
29
} = parsed;
30
30
31
- let category = & attributes. category . as_ref ( ) . map ( |value| quote_spanned ! ( value. span( ) => Some ( #value) ) ) . unwrap_or ( quote ! ( None ) ) ;
31
+ let category = & attributes. category . as_ref ( ) . map ( |value| quote_spanned ! ( value. span( ) => Some ( #value) ) ) . unwrap_or ( quote ! ( None ) ) ;
32
32
let mod_name = format_ident ! ( "_{}_mod" , mod_name) ;
33
33
34
34
let display_name = match & attributes. display_name . as_ref ( ) {
@@ -85,10 +85,10 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
85
85
let field_types: Vec < _ > = fields
86
86
. iter ( )
87
87
. map ( |field| match field {
88
- ParsedField :: Regular { ty, .. } => quote_spanned ! ( ty. span( ) => #ty) ,
88
+ ParsedField :: Regular { ty, .. } => quote_spanned ! ( ty. span( ) => #ty) ,
89
89
ParsedField :: Node { output_type, input_type, .. } => match parsed. is_async {
90
- true => quote_spanned ! ( output_type. span( ) => & ' n impl #graphene_core:: Node <' n, #input_type, Output = impl core:: future:: Future <Output =#output_type>>) ,
91
- false => quote_spanned ! ( output_type. span( ) => & ' n impl #graphene_core:: Node <' n, #input_type, Output = #output_type>) ,
90
+ true => quote_spanned ! ( output_type. span( ) => & ' n impl #graphene_core:: Node <' n, #input_type, Output = impl core:: future:: Future <Output =#output_type>>) ,
91
+ false => quote_spanned ! ( output_type. span( ) => & ' n impl #graphene_core:: Node <' n, #input_type, Output = #output_type>) ,
92
92
} ,
93
93
} )
94
94
. collect ( ) ;
@@ -101,10 +101,10 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
101
101
ParsedField :: Node { widget_override, pat_ident, .. } => ( widget_override, pat_ident. span ( ) ) ,
102
102
} ;
103
103
match parsed_widget_override {
104
- ParsedWidgetOverride :: None => quote_spanned ! ( span => RegistryWidgetOverride :: None ) ,
105
- ParsedWidgetOverride :: Hidden => quote_spanned ! ( span => RegistryWidgetOverride :: Hidden ) ,
106
- ParsedWidgetOverride :: String ( lit_str) => quote_spanned ! ( lit_str. span( ) => RegistryWidgetOverride :: String ( #lit_str) ) ,
107
- ParsedWidgetOverride :: Custom ( lit_str) => quote_spanned ! ( lit_str. span( ) => RegistryWidgetOverride :: Custom ( #lit_str) ) ,
104
+ ParsedWidgetOverride :: None => quote_spanned ! ( span=> RegistryWidgetOverride :: None ) ,
105
+ ParsedWidgetOverride :: Hidden => quote_spanned ! ( span=> RegistryWidgetOverride :: Hidden ) ,
106
+ ParsedWidgetOverride :: String ( lit_str) => quote_spanned ! ( lit_str. span( ) => RegistryWidgetOverride :: String ( #lit_str) ) ,
107
+ ParsedWidgetOverride :: Custom ( lit_str) => quote_spanned ! ( lit_str. span( ) => RegistryWidgetOverride :: Custom ( #lit_str) ) ,
108
108
}
109
109
} )
110
110
. collect ( ) ;
@@ -113,22 +113,22 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
113
113
. iter ( )
114
114
. map ( |field| match field {
115
115
ParsedField :: Regular { value_source, pat_ident, .. } => match value_source {
116
- ParsedValueSource :: Default ( data) => quote_spanned ! ( data. span( ) => RegistryValueSource :: Default ( stringify!( #data) ) ) ,
117
- ParsedValueSource :: Scope ( data) => quote_spanned ! ( data. span( ) => RegistryValueSource :: Scope ( #data) ) ,
118
- _ => quote_spanned ! ( pat_ident. span( ) => RegistryValueSource :: None ) ,
116
+ ParsedValueSource :: Default ( data) => quote_spanned ! ( data. span( ) => RegistryValueSource :: Default ( stringify!( #data) ) ) ,
117
+ ParsedValueSource :: Scope ( data) => quote_spanned ! ( data. span( ) => RegistryValueSource :: Scope ( #data) ) ,
118
+ _ => quote_spanned ! ( pat_ident. span( ) => RegistryValueSource :: None ) ,
119
119
} ,
120
- ParsedField :: Node { pat_ident, .. } => quote_spanned ! ( pat_ident. span( ) => RegistryValueSource :: None ) ,
120
+ ParsedField :: Node { pat_ident, .. } => quote_spanned ! ( pat_ident. span( ) => RegistryValueSource :: None ) ,
121
121
} )
122
122
. collect ( ) ;
123
123
124
124
let default_types: Vec < _ > = fields
125
125
. iter ( )
126
126
. map ( |field| match field {
127
127
ParsedField :: Regular { implementations, pat_ident, .. } => match implementations. first ( ) {
128
- Some ( ty) => quote_spanned ! ( ty. span( ) => Some ( concrete!( #ty) ) ) ,
129
- _ => quote_spanned ! ( pat_ident. span( ) => None ) ,
128
+ Some ( ty) => quote_spanned ! ( ty. span( ) => Some ( concrete!( #ty) ) ) ,
129
+ _ => quote_spanned ! ( pat_ident. span( ) => None ) ,
130
130
} ,
131
- ParsedField :: Node { pat_ident, .. } => quote_spanned ! ( pat_ident. span( ) => None ) ,
131
+ ParsedField :: Node { pat_ident, .. } => quote_spanned ! ( pat_ident. span( ) => None ) ,
132
132
} )
133
133
. collect ( ) ;
134
134
@@ -168,21 +168,21 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
168
168
let exposed: Vec < _ > = fields
169
169
. iter ( )
170
170
. map ( |field| match field {
171
- ParsedField :: Regular { exposed, pat_ident, .. } => quote_spanned ! ( pat_ident. span( ) => #exposed) ,
172
- ParsedField :: Node { pat_ident, .. } => quote_spanned ! ( pat_ident. span( ) => true ) ,
171
+ ParsedField :: Regular { exposed, pat_ident, .. } => quote_spanned ! ( pat_ident. span( ) => #exposed) ,
172
+ ParsedField :: Node { pat_ident, .. } => quote_spanned ! ( pat_ident. span( ) => true ) ,
173
173
} )
174
174
. collect ( ) ;
175
175
176
176
let eval_args = fields. iter ( ) . map ( |field| match field {
177
177
ParsedField :: Regular { pat_ident, .. } => {
178
178
let name = & pat_ident. ident ;
179
- quote_spanned ! { pat_ident. span( ) =>
179
+ quote_spanned ! { pat_ident. span( ) =>
180
180
let #name = self . #name. eval( __input. clone( ) ) . await ;
181
181
}
182
182
}
183
183
ParsedField :: Node { pat_ident, .. } => {
184
184
let name = & pat_ident. ident ;
185
- quote_spanned ! { pat_ident. span( ) =>
185
+ quote_spanned ! { pat_ident. span( ) =>
186
186
let #name = & self . #name;
187
187
}
188
188
}
@@ -198,13 +198,13 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
198
198
let name = & pat_ident. ident ;
199
199
let mut tokens = quote ! ( ) ;
200
200
if let Some ( min) = number_hard_min {
201
- tokens. extend ( quote_spanned ! { min. span( ) =>
201
+ tokens. extend ( quote_spanned ! { min. span( ) =>
202
202
let #name = #graphene_core:: misc:: Clampable :: clamp_hard_min( #name, #min) ;
203
203
} ) ;
204
204
}
205
205
206
206
if let Some ( max) = number_hard_max {
207
- tokens. extend ( quote_spanned ! { max. span( ) =>
207
+ tokens. extend ( quote_spanned ! { max. span( ) =>
208
208
let #name = #graphene_core:: misc:: Clampable :: clamp_hard_max( #name, #max) ;
209
209
} ) ;
210
210
}
@@ -244,10 +244,10 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
244
244
// Add Clampable bound if this field uses hard_min or hard_max
245
245
if number_hard_min. is_some ( ) || number_hard_max. is_some ( ) {
246
246
// The bound applies to the Output type of the future, which is #ty
247
- clampable_clauses. push ( quote_spanned ! ( ty. span( ) => #ty: #graphene_core:: misc:: Clampable ) ) ;
247
+ clampable_clauses. push ( quote_spanned ! ( ty. span( ) => #ty: #graphene_core:: misc:: Clampable ) ) ;
248
248
}
249
249
250
- quote_spanned ! ( ty. span( ) =>
250
+ quote_spanned ! ( ty. span( ) =>
251
251
#fut_ident: core:: future:: Future <Output = #ty> + #graphene_core:: WasmNotSend + ' n,
252
252
for <' all> #all_lifetime_ty: #graphene_core:: WasmNotSend ,
253
253
#name: #graphene_core:: Node <' n, #input_type, Output = #fut_ident> + #graphene_core:: WasmNotSync
@@ -258,7 +258,7 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
258
258
let fut_ident = format_ident ! ( "F{}" , id) ;
259
259
future_idents. push ( fut_ident. clone ( ) ) ;
260
260
261
- quote_spanned ! ( output_type. span( ) =>
261
+ quote_spanned ! ( output_type. span( ) =>
262
262
#fut_ident: core:: future:: Future <Output = #output_type> + #graphene_core:: WasmNotSend + ' n,
263
263
#name: #graphene_core:: Node <' n, #input_type, Output = #fut_ident > + #graphene_core:: WasmNotSync
264
264
)
@@ -279,7 +279,7 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
279
279
) ;
280
280
struct_where_clause. predicates . extend ( extra_where) ;
281
281
282
- let new_args = struct_generics. iter ( ) . zip ( field_names. iter ( ) ) . map ( |( r#gen, name) | quote_spanned ! ( name. span( ) => #name: #r#gen) ) ;
282
+ let new_args = struct_generics. iter ( ) . zip ( field_names. iter ( ) ) . map ( |( r#gen, name) | quote_spanned ! ( name. span( ) => #name: #r#gen) ) ;
283
283
284
284
let async_keyword = is_async. then ( || quote ! ( async ) ) ;
285
285
let await_keyword = is_async. then ( || quote ! ( . await ) ) ;
@@ -298,23 +298,23 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
298
298
}
299
299
} ;
300
300
let path = match parsed. attributes . path {
301
- Some ( ref path) => quote_spanned ! ( path. span( ) => stringify!( #path) . replace( ' ' , "" ) ) ,
301
+ Some ( ref path) => quote_spanned ! ( path. span( ) => stringify!( #path) . replace( ' ' , "" ) ) ,
302
302
None => quote ! ( std:: module_path!( ) . rsplit_once( "::" ) . unwrap( ) . 0 ) ,
303
303
} ;
304
- let identifier = quote_spanned ! ( struct_name_ident. span( ) => format!( "{}::{}" , #path, stringify!( #struct_name) ) ) ;
304
+ let identifier = quote_spanned ! ( struct_name_ident. span( ) => format!( "{}::{}" , #path, stringify!( #struct_name) ) ) ;
305
305
306
306
let register_node_impl = generate_register_node_impl ( parsed, & field_names, & struct_name, & identifier) ?;
307
307
let import_name = format_ident ! ( "_IMPORT_STUB_{}" , mod_name. to_string( ) . to_case( Case :: UpperSnake ) ) ;
308
308
309
- let properties = & attributes. properties_string . as_ref ( ) . map ( |value| quote_spanned ! ( value. span( ) => Some ( #value) ) ) . unwrap_or ( quote ! ( None ) ) ;
309
+ let properties = & attributes. properties_string . as_ref ( ) . map ( |value| quote_spanned ! ( value. span( ) => Some ( #value) ) ) . unwrap_or ( quote ! ( None ) ) ;
310
310
311
311
let node_input_accessor = generate_node_input_references ( parsed, fn_generics, & field_idents, & graphene_core, & identifier) ;
312
312
313
313
// ==========================
314
314
// MAIN CODE GENERATION BLOCK
315
315
// ==========================
316
316
317
- Ok ( quote_spanned ! { parsed. fn_name. span( ) =>
317
+ Ok ( quote_spanned ! { parsed. fn_name. span( ) =>
318
318
/// Underlying implementation for [#struct_name]
319
319
#[ inline]
320
320
#[ allow( clippy:: too_many_arguments) ]
@@ -418,17 +418,17 @@ fn generate_node_input_references(parsed: &ParsedNodeFn, fn_generics: &[crate::G
418
418
419
419
// Only create structs with phantom data where necessary.
420
420
generated_input_accessor. push ( if phantom_data_declerations. is_empty ( ) {
421
- quote_spanned ! { input_ident. span( ) =>
421
+ quote_spanned ! { input_ident. span( ) =>
422
422
pub struct #struct_name;
423
423
}
424
424
} else {
425
- quote_spanned ! { input_ident. span( ) =>
425
+ quote_spanned ! { input_ident. span( ) =>
426
426
pub struct #struct_name <#( #used) , * >{
427
427
#( #phantom_data_declerations, ) *
428
428
}
429
429
}
430
430
} ) ;
431
- generated_input_accessor. push ( quote_spanned ! { input_ident. span( ) =>
431
+ generated_input_accessor. push ( quote_spanned ! { input_ident. span( ) =>
432
432
impl <#( #used) , * > #graphene_core:: NodeInputDecleration for #struct_name <#( #fn_generic_params) , * > {
433
433
const INDEX : usize = #input_index;
434
434
fn identifier( ) -> & ' static str {
@@ -465,14 +465,14 @@ fn generate_phantom_data<'a>(fn_generics: impl Iterator<Item = &'a crate::Generi
465
465
crate :: GenericParam :: Lifetime ( lifetime_param) => {
466
466
let lifetime = & lifetime_param. lifetime ;
467
467
468
- fn_generic_params. push ( quote_spanned ! ( lifetime. span( ) => #lifetime) ) ;
469
- phantom_data_declerations. push ( quote_spanned ! ( lifetime. span( ) => #field_name: core:: marker:: PhantomData <& #lifetime ( ) >) )
468
+ fn_generic_params. push ( quote_spanned ! ( lifetime. span( ) => #lifetime) ) ;
469
+ phantom_data_declerations. push ( quote_spanned ! ( lifetime. span( ) => #field_name: core:: marker:: PhantomData <& #lifetime ( ) >) )
470
470
}
471
471
crate :: GenericParam :: Type ( type_param) => {
472
472
let generic_name = & type_param. ident ;
473
473
474
- fn_generic_params. push ( quote_spanned ! ( generic_name. span( ) => #generic_name) ) ;
475
- phantom_data_declerations. push ( quote_spanned ! ( generic_name. span( ) => #field_name: core:: marker:: PhantomData <#generic_name>) ) ;
474
+ fn_generic_params. push ( quote_spanned ! ( generic_name. span( ) => #generic_name) ) ;
475
+ phantom_data_declerations. push ( quote_spanned ! ( generic_name. span( ) => #field_name: core:: marker:: PhantomData <#generic_name>) ) ;
476
476
}
477
477
_ => { }
478
478
}
@@ -531,21 +531,21 @@ fn generate_register_node_impl(parsed: &ParsedNodeFn, field_names: &[&Ident], st
531
531
532
532
let node = matches ! ( parsed. fields[ j] , ParsedField :: Node { .. } ) ;
533
533
534
- let downcast_node = quote_spanned ! ( field_name. span( ) =>
534
+ let downcast_node = quote_spanned ! ( field_name. span( ) =>
535
535
let #field_name: DowncastBothNode <#input_type, #output_type> = DowncastBothNode :: new( args[ #j] . clone( ) ) ;
536
536
) ;
537
537
if node && !parsed. is_async {
538
538
return Err ( Error :: new_spanned ( & parsed. fn_name , "Node needs to be async if you want to use lambda parameters" ) ) ;
539
539
}
540
540
temp_constructors. push ( downcast_node) ;
541
- temp_node_io. push ( quote_spanned ! ( output_type. span( ) => fn_type_fut!( #input_type, #output_type, alias: #output_type) ) ) ;
542
- panic_node_types. push ( quote_spanned ! ( output_type. span( ) => #input_type, DynFuture <' static , #output_type>) ) ;
541
+ temp_node_io. push ( quote_spanned ! ( output_type. span( ) => fn_type_fut!( #input_type, #output_type, alias: #output_type) ) ) ;
542
+ panic_node_types. push ( quote_spanned ! ( output_type. span( ) => #input_type, DynFuture <' static , #output_type>) ) ;
543
543
}
544
544
let input_type = match parsed. input . implementations . is_empty ( ) {
545
545
true => parsed. input . ty . clone ( ) ,
546
546
false => parsed. input . implementations [ i. min ( parsed. input . implementations . len ( ) - 1 ) ] . clone ( ) ,
547
547
} ;
548
- constructors. push ( quote_spanned ! ( struct_name. span( ) =>
548
+ constructors. push ( quote_spanned ! ( struct_name. span( ) =>
549
549
(
550
550
|args| {
551
551
Box :: pin( async move {
0 commit comments