Skip to content

Commit 8931efd

Browse files
committed
rename as soft_x
1 parent 5c57f42 commit 8931efd

File tree

5 files changed

+39
-34
lines changed

5 files changed

+39
-34
lines changed

node-graph/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ Instead of manually implementing the `Node` trait with complex generics, one can
102102

103103
```rs
104104
#[node_macro::node(category("Raster: Adjustments"))]
105-
fn opacity(_input: (), #[default(424242)] color: Color,#[min(0.1)] opacity_multiplier: f64) -> Color {
105+
fn opacity(_input: (), #[default(424242)] color: Color,#[soft_min(0.1)] opacity_multiplier: f64) -> Color {
106106
let opacity_multiplier = opacity_multiplier as f32 / 100.;
107107
Color::from_rgbaf32_unchecked(color.r(), color.g(), color.b(), color.a() * opacity_multiplier)
108108
}

node-graph/gcore/src/vector/vector_nodes.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ where
379379
async fn round_corners(
380380
_: impl Ctx,
381381
source: VectorDataTable,
382-
#[min(0.)]
382+
#[hard_min(0.)]
383383
#[default(10.)]
384384
radius: PixelLength,
385385
#[range((0., 1.))]
@@ -482,7 +482,7 @@ async fn spatial_merge_by_distance(
482482
_: impl Ctx,
483483
vector_data: VectorDataTable,
484484
#[default(0.1)]
485-
#[min(0.0001)]
485+
#[hard_min(0.0001)]
486486
distance: f64,
487487
) -> VectorDataTable {
488488
let vector_data_transform = vector_data.transform();
@@ -692,7 +692,7 @@ async fn remove_handles(
692692
_: impl Ctx,
693693
vector_data: VectorDataTable,
694694
#[default(10.)]
695-
#[min(0.)]
695+
#[soft_min(0.)]
696696
max_handle_distance: f64,
697697
) -> VectorDataTable {
698698
let vector_data_transform = vector_data.transform();

node-graph/gstd/src/image_color_palette.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use graphene_core::{Color, Ctx};
55
async fn image_color_palette(
66
_: impl Ctx,
77
image: ImageFrameTable<Color>,
8-
#[min(1.)]
8+
#[hard_min(1.)]
99
#[hard_max(28.)]
1010
max_size: u32,
1111
) -> Vec<Color> {

node-graph/node-macro/src/codegen.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,14 +134,24 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
134134
let number_min_values: Vec<_> = fields
135135
.iter()
136136
.map(|field| match field {
137-
ParsedField::Regular { number_min: Some(number_min), .. } => quote!(Some(#number_min)),
137+
ParsedField::Regular { number_soft_min, number_hard_min, .. } => match (number_soft_min, number_hard_min) {
138+
(Some(soft_min), None) => quote!(Some(#soft_min)),
139+
(None, Some(hard_min)) => quote!(Some(#hard_min)),
140+
(None, None) => quote!(None),
141+
(Some(soft_min), Some(hard_min)) => quote!(#graphene_core::num_traits::clamp_min(#soft_min, #hard_min)),
142+
},
138143
_ => quote!(None),
139144
})
140145
.collect();
141146
let number_max_values: Vec<_> = fields
142147
.iter()
143148
.map(|field| match field {
144-
ParsedField::Regular { number_max: Some(number_max), .. } => quote!(Some(#number_max)),
149+
ParsedField::Regular { number_soft_max, number_hard_max, .. } => match (number_soft_max, number_hard_max) {
150+
(Some(soft_max), None) => quote!(Some(#soft_max)),
151+
(None, Some(hard_max)) => quote!(Some(#hard_max)),
152+
(None, None) => quote!(None),
153+
(Some(soft_max), Some(hard_max)) => quote!(#graphene_core::num_traits::clamp_max(#soft_max, #hard_max)),
154+
},
145155
_ => quote!(None),
146156
})
147157
.collect();

node-graph/node-macro/src/parsing.rs

Lines changed: 22 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ pub(crate) enum ParsedField {
105105
ty: Type,
106106
exposed: bool,
107107
value_source: ParsedValueSource,
108-
number_min: Option<LitFloat>,
109-
number_max: Option<LitFloat>,
108+
number_soft_min: Option<LitFloat>,
109+
number_soft_max: Option<LitFloat>,
110110
number_hard_min: Option<LitFloat>,
111111
number_hard_max: Option<LitFloat>,
112112
number_mode_range: Option<ExprTuple>,
@@ -421,16 +421,16 @@ fn parse_field(pat_ident: PatIdent, ty: Type, attrs: &[Attribute]) -> syn::Resul
421421
_ => ParsedValueSource::None,
422422
};
423423

424-
let number_min = extract_attribute(attrs, "min")
424+
let number_soft_min = extract_attribute(attrs, "soft_min")
425425
.map(|attr| {
426426
attr.parse_args()
427-
.map_err(|e| Error::new_spanned(attr, format!("Invalid numerical `min` value for argument '{}': {}", ident, e)))
427+
.map_err(|e| Error::new_spanned(attr, format!("Invalid numerical `soft_min` value for argument '{}': {}", ident, e)))
428428
})
429429
.transpose()?;
430-
let number_max = extract_attribute(attrs, "max")
430+
let number_soft_max = extract_attribute(attrs, "soft_max")
431431
.map(|attr| {
432432
attr.parse_args()
433-
.map_err(|e| Error::new_spanned(attr, format!("Invalid numerical `max` value for argument '{}': {}", ident, e)))
433+
.map_err(|e| Error::new_spanned(attr, format!("Invalid numerical `soft_max` value for argument '{}': {}", ident, e)))
434434
})
435435
.transpose()?;
436436

@@ -515,8 +515,8 @@ fn parse_field(pat_ident: PatIdent, ty: Type, attrs: &[Attribute]) -> syn::Resul
515515
description,
516516
widget_override,
517517
exposed,
518-
number_min,
519-
number_max,
518+
number_soft_min,
519+
number_soft_max,
520520
number_hard_min,
521521
number_hard_max,
522522
number_mode_range,
@@ -733,9 +733,8 @@ mod tests {
733733
ty: parse_quote!(f64),
734734
exposed: false,
735735
value_source: ParsedValueSource::None,
736-
number_min: None,
737-
number_max: None,
738-
736+
number_soft_min: None,
737+
number_soft_max: None,
739738
number_hard_min: None,
740739
number_hard_max: None,
741740
number_mode_range: None,
@@ -801,8 +800,8 @@ mod tests {
801800
ty: parse_quote!(DVec2),
802801
exposed: false,
803802
value_source: ParsedValueSource::None,
804-
number_min: None,
805-
number_max: None,
803+
number_soft_min: None,
804+
number_soft_max: None,
806805
number_hard_min: None,
807806
number_hard_max: None,
808807
number_mode_range: None,
@@ -856,9 +855,8 @@ mod tests {
856855
ty: parse_quote!(f64),
857856
exposed: false,
858857
value_source: ParsedValueSource::Default(quote!(50.)),
859-
number_min: None,
860-
number_max: None,
861-
858+
number_soft_min: None,
859+
number_soft_max: None,
862860
number_hard_min: None,
863861
number_hard_max: None,
864862
number_mode_range: None,
@@ -910,9 +908,8 @@ mod tests {
910908
ty: parse_quote!(f64),
911909
exposed: false,
912910
value_source: ParsedValueSource::None,
913-
number_min: None,
914-
number_max: None,
915-
911+
number_soft_min: None,
912+
number_soft_max: None,
916913
number_hard_min: None,
917914
number_hard_max: None,
918915
number_mode_range: None,
@@ -939,8 +936,8 @@ mod tests {
939936
a: f64,
940937
/// b
941938
#[range((0., 100.))]
942-
#[min(-500.)]
943-
#[max(500.)]
939+
#[soft_min(-500.)]
940+
#[soft_max(500.)]
944941
b: f64,
945942
) -> f64 {
946943
a + b
@@ -976,9 +973,8 @@ mod tests {
976973
ty: parse_quote!(f64),
977974
exposed: false,
978975
value_source: ParsedValueSource::None,
979-
number_min: Some(parse_quote!(-500.)),
980-
number_max: Some(parse_quote!(500.)),
981-
976+
number_soft_min: Some(parse_quote!(-500.)),
977+
number_soft_max: Some(parse_quote!(500.)),
982978
number_hard_min: None,
983979
number_hard_max: None,
984980
number_mode_range: Some(parse_quote!((0., 100.))),
@@ -1030,9 +1026,8 @@ mod tests {
10301026
widget_override: ParsedWidgetOverride::None,
10311027
exposed: true,
10321028
value_source: ParsedValueSource::None,
1033-
number_min: None,
1034-
number_max: None,
1035-
1029+
number_soft_min: None,
1030+
number_soft_max: None,
10361031
number_hard_min: None,
10371032
number_hard_max: None,
10381033
number_mode_range: None,

0 commit comments

Comments
 (0)