@@ -22,12 +22,10 @@ pub struct SourcePosition {
22
22
}
23
23
24
24
25
- /// Like std::borrow::Cow, except:
26
- ///
27
- /// * The Owned variant is boxed
28
- /// * The Borrowed variant contains a mutable reference.
25
+ /// Like std::borrow::Cow, except the borrowed variant contains a mutable
26
+ /// reference.
29
27
enum MaybeOwned < ' a , T : ' a > {
30
- Owned ( Box < T > ) ,
28
+ Owned ( T ) ,
31
29
Borrowed ( & ' a mut T ) ,
32
30
}
33
31
@@ -36,7 +34,7 @@ impl<'a, T> ops::Deref for MaybeOwned<'a, T> {
36
34
37
35
fn deref < ' b > ( & ' b self ) -> & ' b T {
38
36
match * self {
39
- MaybeOwned :: Owned ( ref pointer ) => & * * pointer ,
37
+ MaybeOwned :: Owned ( ref t ) => t ,
40
38
MaybeOwned :: Borrowed ( ref pointer) => & * * pointer,
41
39
}
42
40
}
@@ -45,15 +43,15 @@ impl<'a, T> ops::Deref for MaybeOwned<'a, T> {
45
43
impl < ' a , T > ops:: DerefMut for MaybeOwned < ' a , T > {
46
44
fn deref_mut < ' b > ( & ' b mut self ) -> & ' b mut T {
47
45
match * self {
48
- MaybeOwned :: Owned ( ref mut pointer ) => & mut * * pointer ,
46
+ MaybeOwned :: Owned ( ref mut t ) => t ,
49
47
MaybeOwned :: Borrowed ( ref mut pointer) => & mut * * pointer,
50
48
}
51
49
}
52
50
}
53
51
54
52
impl < ' a , T > Clone for MaybeOwned < ' a , T > where T : Clone {
55
53
fn clone ( & self ) -> MaybeOwned < ' a , T > {
56
- MaybeOwned :: Owned ( Box :: new ( ( * * self ) . clone ( ) ) )
54
+ MaybeOwned :: Owned ( ( * * self ) . clone ( ) )
57
55
}
58
56
}
59
57
@@ -171,7 +169,7 @@ impl<'i, 't> Parser<'i, 't> {
171
169
#[ inline]
172
170
pub fn new ( input : & ' i str ) -> Parser < ' i , ' i > {
173
171
Parser {
174
- tokenizer : MaybeOwned :: Owned ( Box :: new ( Tokenizer :: new ( input) ) ) ,
172
+ tokenizer : MaybeOwned :: Owned ( Tokenizer :: new ( input) ) ,
175
173
at_start_of : None ,
176
174
stop_before : Delimiter :: None ,
177
175
}
0 commit comments