4 releases
0.2.0 | May 27, 2024 |
---|---|
0.1.2 | Apr 24, 2024 |
0.1.1 | Apr 23, 2024 |
0.1.0 |
|
#43 in #convert-string
Used in 2 crates
(via stringz)
4KB
stringz
Convert strings to types to make it available as generic parameters.
Install
cargo add stringz
For no_std
users:
cargo add stringz --no-default-features
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
~225–670KB
~16K SLoC