mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-15 22:28:10 +08:00
* WIP, for TrueDoctor to continue * Expose first implementation type as default type in field metadata * Cleanup --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
@@ -1,14 +1,13 @@
|
||||
use crate::transform::Footprint;
|
||||
use crate::{NodeIO, NodeIOTypes, Type};
|
||||
|
||||
use dyn_any::DynAny;
|
||||
|
||||
use std::collections::HashMap;
|
||||
use std::ops::Deref;
|
||||
use std::pin::Pin;
|
||||
use std::sync::{LazyLock, Mutex};
|
||||
|
||||
use dyn_any::DynAny;
|
||||
|
||||
use crate::transform::Footprint;
|
||||
use crate::NodeIO;
|
||||
use crate::NodeIOTypes;
|
||||
|
||||
pub mod types {
|
||||
/// 0% - 100%
|
||||
pub type Percentage = f64;
|
||||
@@ -47,6 +46,7 @@ pub struct FieldMetadata {
|
||||
pub exposed: bool,
|
||||
pub widget_override: RegistryWidgetOverride,
|
||||
pub value_source: RegistryValueSource,
|
||||
pub default_type: Option<Type>,
|
||||
pub number_min: Option<f64>,
|
||||
pub number_max: Option<f64>,
|
||||
pub number_mode_range: Option<(f64, f64)>,
|
||||
|
||||
@@ -117,6 +117,17 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
|
||||
})
|
||||
.collect();
|
||||
|
||||
let default_types: Vec<_> = fields
|
||||
.iter()
|
||||
.map(|field| match field {
|
||||
ParsedField::Regular { implementations, .. } => match implementations.first() {
|
||||
Some(ty) => quote!(Some(concrete!(#ty))),
|
||||
_ => quote!(None),
|
||||
},
|
||||
_ => quote!(None),
|
||||
})
|
||||
.collect();
|
||||
|
||||
let number_min_values: Vec<_> = fields
|
||||
.iter()
|
||||
.map(|field| match field {
|
||||
@@ -292,6 +303,7 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
|
||||
description: #input_descriptions,
|
||||
exposed: #exposed,
|
||||
value_source: #value_sources,
|
||||
default_type: #default_types,
|
||||
number_min: #number_min_values,
|
||||
number_max: #number_max_values,
|
||||
number_mode_range: #number_mode_range_values,
|
||||
|
||||
Reference in New Issue
Block a user