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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//! Macros for creating non-empty strings.
/// Constructs [`NonEmptyStr`] from the given string, panicking if it is empty,
/// and then converts it into [`NonEmptyString`].
///
/// # Examples
///
/// Simple usage:
///
/// ```
/// use non_empty_str::non_empty_string;
///
/// let nekit = non_empty_string!("nekit");
/// ```
///
/// Expands to:
///
/// ```
/// use non_empty_str::non_empty_str;
///
/// let nekit = non_empty_str!("nekit").to_non_empty_string();
/// ```
///
/// See [`non_empty_str!`] for more details.
///
/// Panicking if the string is empty:
///
/// ```should_panic
/// use non_empty_str::non_empty_string;
///
/// let never = non_empty_string!("");
/// ```
///
/// [`NonEmptyStr`]: crate::str::NonEmptyStr
/// [`NonEmptyString`]: crate::string::NonEmptyString
/// [`non_empty_str!`]: crate::non_empty_str
/// Constructs [`NonEmptyStr`] from the given string, panicking if 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!("");
/// ```
///
/// [`non_empty_str!`]: crate::non_empty_str