@@ -5,20 +5,38 @@ use super::Vec;
5
5
6
6
#[ stable( feature = "cow_from_vec" , since = "1.8.0" ) ]
7
7
impl < ' a , T : Clone > From < & ' a [ T ] > for Cow < ' a , [ T ] > {
8
+ /// Creates a [`Borrowed`] variant of [`Cow`]
9
+ /// from a slice.
10
+ ///
11
+ /// This conversion does not allocate or clone the data.
12
+ ///
13
+ /// [`Borrowed`]: crate::borrow::Cow::Borrowed
8
14
fn from ( s : & ' a [ T ] ) -> Cow < ' a , [ T ] > {
9
15
Cow :: Borrowed ( s)
10
16
}
11
17
}
12
18
13
19
#[ stable( feature = "cow_from_vec" , since = "1.8.0" ) ]
14
20
impl < ' a , T : Clone > From < Vec < T > > for Cow < ' a , [ T ] > {
21
+ /// Creates an [`Owned`] variant of [`Cow`]
22
+ /// from an owned instance of [`Vec`].
23
+ ///
24
+ /// This conversion does not allocate or clone the data.
25
+ ///
26
+ /// [`Owned`]: crate::borrow::Cow::Owned
15
27
fn from ( v : Vec < T > ) -> Cow < ' a , [ T ] > {
16
28
Cow :: Owned ( v)
17
29
}
18
30
}
19
31
20
32
#[ stable( feature = "cow_from_vec_ref" , since = "1.28.0" ) ]
21
33
impl < ' a , T : Clone > From < & ' a Vec < T > > for Cow < ' a , [ T ] > {
34
+ /// Creates a [`Borrowed`] variant of [`Cow`]
35
+ /// from a reference to [`Vec`].
36
+ ///
37
+ /// This conversion does not allocate or clone the data.
38
+ ///
39
+ /// [`Borrowed`]: crate::borrow::Cow::Borrowed
22
40
fn from ( v : & ' a Vec < T > ) -> Cow < ' a , [ T ] > {
23
41
Cow :: Borrowed ( v. as_slice ( ) )
24
42
}
0 commit comments