@@ -16,16 +16,8 @@ pub trait Time: Copy + Sub<Duration, Output = Self> where Self: Sized {
16
16
/// Returns an instance corresponding to the current moment.
17
17
fn now ( ) -> Self ;
18
18
19
- /// Returns the amount of time elapsed since `self` was created.
20
- fn elapsed ( & self ) -> Duration ;
21
-
22
19
/// Returns the amount of time passed between `earlier` and `self`.
23
20
fn duration_since ( & self , earlier : Self ) -> Duration ;
24
-
25
- /// Returns the amount of time passed since the beginning of [`Time`].
26
- ///
27
- /// Used during (de-)serialization.
28
- fn duration_since_epoch ( ) -> Duration ;
29
21
}
30
22
31
23
/// A state in which time has no meaning.
@@ -40,14 +32,6 @@ impl Time for Eternity {
40
32
fn duration_since ( & self , _earlier : Self ) -> Duration {
41
33
Duration :: from_secs ( 0 )
42
34
}
43
-
44
- fn duration_since_epoch ( ) -> Duration {
45
- Duration :: from_secs ( 0 )
46
- }
47
-
48
- fn elapsed ( & self ) -> Duration {
49
- Duration :: from_secs ( 0 )
50
- }
51
35
}
52
36
53
37
impl Sub < Duration > for Eternity {
@@ -82,15 +66,6 @@ impl Time for MonotonicTime {
82
66
let now = Self :: now ( ) ;
83
67
if now. 0 > earlier. 0 { now. 0 - earlier. 0 } else { Duration :: from_secs ( 0 ) }
84
68
}
85
-
86
- fn duration_since_epoch ( ) -> Duration {
87
- use std:: time:: SystemTime ;
88
- SystemTime :: now ( ) . duration_since ( SystemTime :: UNIX_EPOCH ) . unwrap ( )
89
- }
90
-
91
- fn elapsed ( & self ) -> Duration {
92
- Self :: now ( ) . 0 - self . 0
93
- }
94
69
}
95
70
96
71
#[ cfg( feature = "std" ) ]
@@ -127,20 +102,12 @@ pub mod tests {
127
102
128
103
impl Time for SinceEpoch {
129
104
fn now ( ) -> Self {
130
- Self ( Self :: duration_since_epoch ( ) )
105
+ Self ( Self :: ELAPSED . with ( |elapsed| elapsed . get ( ) ) )
131
106
}
132
107
133
108
fn duration_since ( & self , earlier : Self ) -> Duration {
134
109
self . 0 - earlier. 0
135
110
}
136
-
137
- fn duration_since_epoch ( ) -> Duration {
138
- Self :: ELAPSED . with ( |elapsed| elapsed. get ( ) )
139
- }
140
-
141
- fn elapsed ( & self ) -> Duration {
142
- Self :: duration_since_epoch ( ) - self . 0
143
- }
144
111
}
145
112
146
113
impl Sub < Duration > for SinceEpoch {
@@ -154,36 +121,20 @@ pub mod tests {
154
121
#[ test]
155
122
fn time_passes_when_advanced ( ) {
156
123
let now = SinceEpoch :: now ( ) ;
157
- assert_eq ! ( now. elapsed( ) , Duration :: from_secs( 0 ) ) ;
158
124
159
125
SinceEpoch :: advance ( Duration :: from_secs ( 1 ) ) ;
160
126
SinceEpoch :: advance ( Duration :: from_secs ( 1 ) ) ;
161
127
162
- let elapsed = now. elapsed ( ) ;
163
128
let later = SinceEpoch :: now ( ) ;
164
129
165
- assert_eq ! ( elapsed, Duration :: from_secs( 2 ) ) ;
166
- assert_eq ! ( later - elapsed, now) ;
130
+ assert_eq ! ( now. 0 + Duration :: from_secs( 2 ) , later. 0 ) ;
167
131
}
168
132
169
133
#[ test]
170
134
fn time_never_passes_in_an_eternity ( ) {
171
135
let now = Eternity :: now ( ) ;
172
- let elapsed = now. elapsed ( ) ;
173
136
let later = Eternity :: now ( ) ;
174
137
175
- assert_eq ! ( now. elapsed( ) , Duration :: from_secs( 0 ) ) ;
176
- assert_eq ! ( later - elapsed, now) ;
177
- }
178
-
179
- #[ test]
180
- #[ cfg( feature = "std" ) ]
181
- fn monotonic_time_subtracts ( ) {
182
- let now = super :: MonotonicTime :: now ( ) ;
183
- assert ! ( now. elapsed( ) < Duration :: from_secs( 10 ) ) ;
184
-
185
- let ten_years = Duration :: from_secs ( 10 * 365 * 24 * 60 * 60 ) ;
186
- let past = now - ten_years;
187
- assert ! ( past. elapsed( ) >= ten_years) ;
138
+ assert_eq ! ( later, now) ;
188
139
}
189
140
}
0 commit comments