Expand description
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);
Macros§
- concatstr
- Concatenate multiple typed strings.
- ident
- Convert a string to a type, the input must be an identifier.
- string
- Convert a string to a type, the input must be a string literal.
Structs§
- Character
- Single
char
type value representation.
Traits§
- Typed
String - Get original string from typed string (requires
alloc
orstd
feature).