1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//! Macros for creating non-empty strings.
/// Constructs [`NonEmptyStr`] from the given string, panicking if the it is empty.
///
/// # Examples
///
/// Simple usage:
///
/// ```
/// use non_empty_str::non_empty_str;
///
/// let nekit = non_empty_str!("nekit");
/// ```
///
/// Panicking if the string is empty:
///
/// ```should_panic
/// use non_empty_str::non_empty_str;
///
/// let never = non_empty_str!("");
/// ```
///
/// Compilation failure when in `const` contexts:
///
/// ```compile_fail
/// use non_empty_str::non_empty_str;
///
/// let never = const { non_empty_str!("") };
/// ```
///
/// [`NonEmptyStr`]: crate::str::NonEmptyStr
/// Similar to [`non_empty_str!`] but for `const` contexts.
///
/// Note that the provided expression must be const-evaluatable, else the compilation will fail.
///
/// # Examples
///
/// ```
/// use non_empty_str::const_non_empty_str;
///
/// let message = const_non_empty_str!("Hello, world!");
/// ```
///
/// Failing compilation on empty strings:
///
/// ```compile_fail
/// use non_empty_str::const_non_empty_str;
///
/// let never = const_non_empty_str!("");
/// ```