2 releases
0.1.2 | Apr 24, 2024 |
---|---|
0.1.1 | Apr 23, 2024 |
0.1.0 |
|
#787 in Procedural macros
490 downloads per month
Used in 2 crates
(via stringz)
4KB
stringz
Convert strings to types to make it available as generic parameters.
Example
use stringz::{TypedString, string};
fn test_hello<T: TypedString>() {
assert_eq!(T::value(), "hello");
}
test_hello::<string!("hello")>();
Explanation
The string
macro converts "hello"
to the following tuple type:
(Character<'h'>, Character<'e'>, Character<'l'>, Character<'l'>, Character<'o'>)
Note: The above form is only for ease of understanding, the actual Tuple
type of
tuplez is used.
All generated types are zero-sized types:
use stringz::string;
assert_eq!(std::mem::size_of::<string!("no matter how long it is")>(), 0);
Dependencies
~315–770KB
~18K SLoC