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
108
109
110
111
112
113
use crateLightStr;
use Arc;
/// Ergonomic conversion trait for creating [`LightStr`] values.
///
/// This trait provides an `into_light_str()` method that converts string types into `LightStr`.
/// It mirrors the standard `Into` trait pattern but with a more explicit name that
/// signals the intent: converting to a light-clone-able type.
///
/// # Examples
///
/// ```
/// use light_clone::IntoLightStr;
///
/// // From a string literal
/// let s = "hello".into_light_str();
///
/// // From an owned String
/// let owned = String::from("world");
/// let s2 = owned.into_light_str();
/// ```
///
/// # Why not just use `Into<Arc<str>>`?
///
/// While `Arc::from()` works fine, `into_light_str()` makes the intent explicit at the call site:
/// you're converting to a light-clone-able string type. This helps with code readability
/// and signals that the resulting value is cheap to clone.