| Crates.io | stringz |
| lib.rs | stringz |
| version | 0.4.1 |
| created_at | 2024-04-22 07:16:23.226243+00 |
| updated_at | 2024-05-27 07:23:12.438831+00 |
| description | A way to use strings in generic paramters |
| homepage | |
| repository | https://github.com/NichtsHsu/structz |
| max_upload_size | |
| id | 1216020 |
| size | 6,450 |
Convert strings to types to make it available as generic parameters.
cargo add stringz
For no_std users:
cargo add stringz --no-default-features
use stringz::{TypedString, string};
fn test_hello<T: TypedString>() {
assert_eq!(T::value(), "hello");
}
test_hello::<string!("hello")>();
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);