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
//! 「作为静态字串引用」
//! * 🎯用于各种【需要兼容`String`、`&str`、`&String`到`&str`】的场景
use cratemacro_once;
/// 将自身转换为 `&str`
/// * 🎯用来表达类似TypeScript`String | str | &String | &str | ...`的语义
/// * 用来统一兼容各种字符串类型
/// * 📌后续写函数的时候,只需一个`s: impl AsStrRef`
/// * ✨**再也不用考虑对`String`、`&str`的通用兼容问题了**
///
/// ! ❌`Deref<Target=str>`/`Deref<Target=&str>`无法满足上述兼容要求
/// * 📝无法同时满足`String`与`&str`:满足了一个,另一个又不满足了
macro_once!