Crate stringz

source ·
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§

  • Concatenate multiple typed strings.
  • Convert a string to a type, the input must be an identifier.
  • Convert a string to a type, the input must be a string literal.

Structs§

  • Single char type value representation.

Traits§

  • Get original string from typed string (requires alloc or std feature).