From cac960247099557c73ec8d8f4ab8c4d9b06cc6ed Mon Sep 17 00:00:00 2001 From: Andrew Golovashevich Date: Wed, 19 Nov 2025 18:07:52 +0300 Subject: [PATCH] Fixes and improvements in macros --- src/macros/builder_trait_decl.rs | 13 +++++++------ src/macros/builder_type_t.rs | 8 ++++---- src/macros/parser_fn_decl.rs | 18 ++++++++++-------- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/macros/builder_trait_decl.rs b/src/macros/builder_trait_decl.rs index 716da32..34973a5 100644 --- a/src/macros/builder_trait_decl.rs +++ b/src/macros/builder_trait_decl.rs @@ -3,7 +3,8 @@ macro_rules! builder_trait_decl { ( $scope:vis trait $name:ident $(< - $generic0Name:ident $(: $generic0Bound:path)? $(, $genericNName:ident $(: $genericNBound:path)?)* + $generic0Name:ident $(: $generic0Bound:path)? + $(, $genericNName:ident $(: $genericNBound:path)?)* $(,)? >)? $(: $base0:path $(, $baseN:path)*)? { $($body:tt)* } @@ -13,15 +14,15 @@ macro_rules! builder_trait_decl { 'source, 'pos, P:Pos<'pos>, CS:CollectedSubstring<'source> $(, $generic0Name $(: $generic0Bound)? $(, $genericNName $(: $genericNBound)?)* )? > - $(: $base0 $(, $baseN)*)? + $(: $base0 $(+ $baseN)*)? { $($body)* } }; - + ( $scope:vis trait $name:ident < $lifetime0Name:lifetime $(, $lifetimeNName:lifetime)* - $(, $genericNName:ident $(: $genericNBound:path)?)* + $(, $genericNName:ident $(: $genericNBound:path)?)* $(,)? > $(: $base0:path $(, $baseN:path)*)? { $($body:tt)* } @@ -32,7 +33,7 @@ macro_rules! builder_trait_decl { P: Pos<'pos>, CS: CollectedSubstring<'source> $(, $genericNName $(: $genericNBound)?)* > - $(: $base0 $(, $baseN)*)? + $(: $base0 $(+ $baseN)*)? { $($body)* } }; -} \ No newline at end of file +} diff --git a/src/macros/builder_type_t.rs b/src/macros/builder_type_t.rs index 1c122b8..b3860df 100644 --- a/src/macros/builder_type_t.rs +++ b/src/macros/builder_type_t.rs @@ -3,7 +3,7 @@ macro_rules! builder_type_t { ( $name:ident $(< - $generic0Name:ty $(, $genericNName:ty)* + $generic0Name:ty $(, $genericNName:ty)* $(,)? >)? ) => { @@ -18,7 +18,7 @@ macro_rules! builder_type_t { $name:ident < $lifetime0Name:lifetime $(, $lifetimeNName:lifetime)* - $(, $genericNName:ty)* + $(, $genericNName:ty)* $(,)? > ) => { $name @@ -31,7 +31,7 @@ macro_rules! builder_type_t { ( impl $name:ident $(< - $generic0Name:ty $(, $genericNName:ty)* + $generic0Name:ty $(, $genericNName:ty)* $(,)? >)? ) => { @@ -46,7 +46,7 @@ macro_rules! builder_type_t { impl $name:ident < $lifetime0Name:lifetime $(, $lifetimeNName:lifetime)* - $(, $genericNName:ty)* + $(, $genericNName:ty)* $(,)? > ) => { impl $name diff --git a/src/macros/parser_fn_decl.rs b/src/macros/parser_fn_decl.rs index a9eb333..96f0a40 100644 --- a/src/macros/parser_fn_decl.rs +++ b/src/macros/parser_fn_decl.rs @@ -4,9 +4,10 @@ macro_rules! parser_fn_decl { ( $scope:vis fn $name:ident $(< - $generic0Name:ident $(: $generic0Bound:path)? $(, $genericNName:ident $(: $genericNBound:path)?)* + $generic0Name:ident $(: $generic0Bound:path)? + $(, $genericNName:ident $(: $genericNBound:path)?)* $(,)? >)? - ($srcName:ident : $srcType:ty $(, $argNName:ident : $argNType:ty)*) + ($srcName:ident : $srcType:ty $(, $argNName:ident : $argNType:ty)* $(,)?) $(-> $ret:ty)? $body:block ) => { @@ -25,9 +26,9 @@ macro_rules! parser_fn_decl { $scope:vis fn $name:ident < $lifetime0Name:lifetime $(, $lifetimeNName:lifetime)* - $(, $genericNName:ident $(: $genericNBound:path)?)* + $(, $genericNName:ident $(: $genericNBound:path)?)* $(,)? > - ($srcName:ident : $srcType:ty $(, $argNName:ident : $argNType:ty)*) + ($srcName:ident : $srcType:ty $(, $argNName:ident : $argNType:ty)* $(,)?) $(-> $ret:ty)? $body:block ) => { @@ -46,9 +47,10 @@ macro_rules! parser_fn_decl { ( $scope:vis fn $name:ident $(< - $generic0Name:ident $(: $generic0Bound:path)? $(, $genericNName:ident $(: $genericNBound:path)?)* + $generic0Name:ident $(: $generic0Bound:path)? + $(, $genericNName:ident $(: $genericNBound:path)?)* $(,)? >)? - ($srcName:ident $(, $argNName:ident : $argNType:ty)*) + ($srcName:ident $(, $argNName:ident : $argNType:ty)* $(,)?) $(-> $ret:ty)? $body:block ) => { @@ -67,9 +69,9 @@ macro_rules! parser_fn_decl { $scope:vis fn $name:ident < $lifetime0Name:lifetime $(, $lifetimeNName:lifetime)* - $(, $genericNName:ident $(: $genericNBound:path)?)* + $(, $genericNName:ident $(: $genericNBound:path)?)* $(,)? > - ($srcName:ident $(, $argNName:ident : $argNType:ty)*) + ($srcName:ident $(, $argNName:ident : $argNType:ty)* $(,)?) $(-> $ret:ty)? $body:block ) => {