From 1f54311854c7ebe32f9990a8541f4e48f6f6faca Mon Sep 17 00:00:00 2001 From: Andrew Golovashevich Date: Sat, 15 Nov 2025 22:00:33 +0300 Subject: [PATCH] builder_type_t --- src/builder_type_t.rs | 58 +++++++++++++++++++++++++++++++++++++++++++ src/lib.rs | 1 + 2 files changed, 59 insertions(+) create mode 100644 src/builder_type_t.rs diff --git a/src/builder_type_t.rs b/src/builder_type_t.rs new file mode 100644 index 0000000..caacc5b --- /dev/null +++ b/src/builder_type_t.rs @@ -0,0 +1,58 @@ +#[macro_export] +macro_rules! builder_type_t { + ( + $name:ident + $(< + $generic0Name:ty $(, $genericNName:ty)* + >)? + + ) => { + $name + < + 'source, 'pos, 'builder, C, P, CS + $(, $generic0Name $(, $genericNName)*)? + > + + }; + ( + $name:ident + < + $lifetime0Name:lifetime $(, $lifetimeNName:lifetime)* + $(, $genericNName:ty)* + > + ) => { + $name + < + 'source, 'pos, 'builder, $lifetime0Name $(, $lifetimeNName)*, + C, P, CS $(, $genericNName)* + > + }; + + ( + impl $name:ident + $(< + $generic0Name:ty $(, $genericNName:ty)* + >)? + + ) => { + impl $name + < + 'source, 'pos, 'builder, C, P, CS + $(, $generic0Name $(, $genericNName)*)? + > + + }; + ( + impl $name:ident + < + $lifetime0Name:lifetime $(, $lifetimeNName:lifetime)* + $(, $genericNName:ty)* + > + ) => { + impl $name + < + 'source, 'pos, 'builder, $lifetime0Name $(, $lifetimeNName)*, + C, P, CS $(, $genericNName)* + > + }; +} \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index a669efb..a0ac0a3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,6 @@ mod _keyword_impls; mod parser_func; +mod builder_type_t; pub trait Predicate { fn check(&mut self, chr: C) -> bool;