macro_rules! transducer {
(@check $e:expr) => { ... };
(@inner ($($t:tt)*)) => { ... };
(@inner => $f:expr, $g:expr, $h:expr $(,)?) => { ... };
(@inner = $e:expr) => { ... };
(@inner <= $e:expr) => { ... };
(@inner >= $e:expr) => { ... };
(@inner < $e:expr) => { ... };
(@inner > $e:expr) => { ... };
(@inner !<= $e:expr) => { ... };
(@inner !>= $e:expr) => { ... };
(@inner !< $e:expr) => { ... };
(@inner !> $e:expr) => { ... };
(@inner $e:ident =) => { ... };
(@inner $e:ident <=) => { ... };
(@inner $e:ident >=) => { ... };
(@inner $e:ident <) => { ... };
(@inner $e:ident >) => { ... };
(@inner $e:ident !<=) => { ... };
(@inner $e:ident !>=) => { ... };
(@inner $e:ident !<) => { ... };
(@inner $e:ident !>) => { ... };
(@inner =) => { ... };
(@inner <=) => { ... };
(@inner >=) => { ... };
(@inner <) => { ... };
(@inner >) => { ... };
(@inner !<=) => { ... };
(@inner !>=) => { ... };
(@inner !<) => { ... };
(@inner !>) => { ... };
(@inner @id) => { ... };
(@inner @it $e:expr) => { ... };
(@inner @map $f:expr) => { ... };
(@inner @fmap $f:expr) => { ... };
(@inner @seq $e:expr) => { ... };
(@inner @rseq $e:expr) => { ... };
(@inner @<$t:ty>) => { ... };
(@inner @) => { ... };
(@inner $($t:tt)*) => { ... };
(@inter [$([$($a:tt)*])*]) => { ... };
(@inter [] [$($b:tt)*]) => { ... };
(@inter [$($a:tt)*] [$($b:tt)*]) => { ... };
(@inter [$($a:tt)*] [$($b:tt)*] & $($t:tt)*) => { ... };
(@inter [$($a:tt)*] [$($b:tt)*] $op:tt $($t:tt)*) => { ... };
(@prod [$([$($a:tt)*])*]) => { ... };
(@prod [] [$($b:tt)*]) => { ... };
(@prod [$($a:tt)*] [$($b:tt)*]) => { ... };
(@prod [$($a:tt)*] [$($b:tt)*] * $($t:tt)*) => { ... };
(@prod [$($a:tt)*] [$($b:tt)*] $op:tt $($t:tt)*) => { ... };
(@chain [$([$($a:tt)*])*]) => { ... };
(@chain [] [$($b:tt)*]) => { ... };
(@chain [$($a:tt)*] [$($b:tt)*]) => { ... };
(@chain [$($a:tt)*] [$($b:tt)*] . $($t:tt)*) => { ... };
(@chain [$($a:tt)*] [$($b:tt)*] $op:tt $($t:tt)*) => { ... };
(@id $($t:tt)*) => { ... };
(@it $($t:tt)*) => { ... };
(@map $($t:tt)*) => { ... };
(@fmap $($t:tt)*) => { ... };
(@seq $($t:tt)*) => { ... };
(@rseq $($t:tt)*) => { ... };
(@$tag:ident $($t:tt)*) => { ... };
($($t:tt)*) => { ... };
}
Expand description
build transducer
transducer!(A)
<= seq
,seq >=
:LexicographicalTransducer::less_than_or_equal()
withSequenceTransducer
>= seq
,seq <=
:LexicographicalTransducer::greater_than_or_equal()
withSequenceTransducer
< seq
,seq >
:LexicographicalTransducer::less_than()
withSequenceTransducer
> seq
,seq <
:LexicographicalTransducer::greater_than()
withSequenceTransducer
!<= seq
,seq !>=
:RevLexicographicalTransducer::less_than_or_equal()
withSequenceTransducer
!>= seq
,seq !<=
:RevLexicographicalTransducer::greater_than_or_equal()
withSequenceTransducer
!< seq
,seq !>
:RevLexicographicalTransducer::less_than()
withSequenceTransducer
!> seq
,seq !<
:RevLexicographicalTransducer::greater_than()
withSequenceTransducer
<=
:LexicographicalTransducer::less_than_or_equal()
>=
:LexicographicalTransducer::greater_than_or_equal()
<
:LexicographicalTransducer::less_than()
>
:LexicographicalTransducer::greater_than()
!<=
:RevLexicographicalTransducer::less_than_or_equal()
!>=
:RevLexicographicalTransducer::greater_than_or_equal()
!<
:RevLexicographicalTransducer::less_than()
!>
:RevLexicographicalTransducer::greater_than()
=> f g h
:FunctionalTransducer::new(f, g, h)
@id
:IdentityTransducer::new()
@it e
:IteratorTransducer::new(e)
@map f
:MapTransducer::new(f)
@fmap f
:FilterMapTransducer::new(f)
@seq e
:SequenceTransducer::new(e)
@rseq e
:RevSequenceTransducer::new(e)
@
:AlwaysAcceptingTransducer::new()
A . B
:ChainTransducer((A, B))
A * B
:ProductTransducer((A, B))
A & B
:IntersectionTransducer((A, B))