Crates.io | tuplez-macros |
lib.rs | tuplez-macros |
version | 0.7.0 |
source | src |
created_at | 2024-02-24 09:11:45.439173 |
updated_at | 2024-05-27 05:04:58.832048 |
description | Procedural macros implementation of tuplez |
homepage | |
repository | https://github.com/NichtsHsu/tuplez |
max_upload_size | |
id | 1151495 |
size | 34,880 |
This crate introduces a tuple type represented in recursive form rather than parallel form.
The primitive tuple types are represented in parallel form, like:
(a, b, c, d ...)
Since Rust doesn't support variadic generics, we cannot add methods to primitive tuples with any number of elements.
Currently, most tuple crates use declarative macros to implement methods for tuples whose number of elements is less than a certain limit (usually 32).
To solve this, tuplez introduces a Tuple
type represented in recursive form, like:
Tuple(a, Tuple(b, Tuple(c, Tuple(d, ...))))
The advantage of this representation is that you can implement methods recursively for all tuples,
and there is no longer a limit on the number of tuple's elements. And, in almost all cases, the Tuple
takes no more memory than
the primitive tuples.
Trait
(e.g. Eq
, Add
), then the Tuple
also implement that Trait
.Please check the documentation for details.