@@ -23,14 +23,8 @@ impl Timestamp {
23
23
const SIGN_BIT : u32 = 0x8000_0000 ;
24
24
25
25
/// Create a new [`Timestamp`]
26
- pub const fn new ( negative : bool , seconds : u32 , subseconds : u32 ) -> Option < Self > {
27
- let subseconds = if let Some ( subs) = Subseconds :: new ( subseconds) {
28
- subs
29
- } else {
30
- return None ;
31
- } ;
32
-
33
- Some ( Self :: new_unchecked ( negative, seconds, subseconds. raw ( ) ) )
26
+ pub const fn new ( negative : bool , seconds : u32 , subseconds : Subseconds ) -> Self {
27
+ Self :: new_unchecked ( negative, seconds, subseconds. raw ( ) )
34
28
}
35
29
36
30
/// Create a new [`Timestamp`] from the given raw value.
@@ -158,24 +152,28 @@ impl core::ops::SubAssign<Timestamp> for Timestamp {
158
152
mod test {
159
153
use crate :: ptp:: SUBSECONDS_PER_SECOND ;
160
154
161
- use super :: Timestamp ;
155
+ use super :: { Subseconds , Timestamp } ;
156
+
157
+ fn subs ( val : u32 ) -> Subseconds {
158
+ Subseconds :: new ( val) . unwrap ( )
159
+ }
162
160
163
161
#[ test]
164
162
fn timestamp_add ( ) {
165
- let one = Timestamp :: new ( false , 1 , 1 ) . unwrap ( ) ;
166
- let one_big = Timestamp :: new ( false , 1 , SUBSECONDS_PER_SECOND - 1 ) . unwrap ( ) ;
167
- let two = Timestamp :: new ( false , 2 , 2 ) . unwrap ( ) ;
168
- let three = Timestamp :: new ( false , 3 , 3 ) . unwrap ( ) ;
163
+ let one = Timestamp :: new ( false , 1 , subs ( 1 ) ) ;
164
+ let one_big = Timestamp :: new ( false , 1 , subs ( SUBSECONDS_PER_SECOND - 1 ) ) ;
165
+ let two = Timestamp :: new ( false , 2 , subs ( 2 ) ) ;
166
+ let three = Timestamp :: new ( false , 3 , subs ( 3 ) ) ;
169
167
170
- let one_neg = Timestamp :: new ( true , 1 , 1 ) . unwrap ( ) ;
171
- let one_big_neg = Timestamp :: new ( true , 1 , SUBSECONDS_PER_SECOND - 1 ) . unwrap ( ) ;
172
- let two_neg = Timestamp :: new ( true , 2 , 2 ) . unwrap ( ) ;
173
- let three_neg = Timestamp :: new ( true , 3 , 3 ) . unwrap ( ) ;
168
+ let one_neg = Timestamp :: new ( true , 1 , subs ( 1 ) ) ;
169
+ let one_big_neg = Timestamp :: new ( true , 1 , subs ( SUBSECONDS_PER_SECOND - 1 ) ) ;
170
+ let two_neg = Timestamp :: new ( true , 2 , subs ( 2 ) ) ;
171
+ let three_neg = Timestamp :: new ( true , 3 , subs ( 3 ) ) ;
174
172
175
- let one_minus_two = Timestamp :: new ( true , 1 , 1 ) . unwrap ( ) ;
176
- let one_big_plus_two = Timestamp :: new ( false , 4 , 0 ) . unwrap ( ) ;
177
- let two_minus_one_big = Timestamp :: new ( false , 0 , 4 ) . unwrap ( ) ;
178
- let one_big_neg_plus_two_neg = Timestamp :: new ( true , 4 , 0 ) . unwrap ( ) ;
173
+ let one_minus_two = Timestamp :: new ( true , 1 , subs ( 1 ) ) ;
174
+ let one_big_plus_two = Timestamp :: new ( false , 4 , subs ( 0 ) ) ;
175
+ let two_minus_one_big = Timestamp :: new ( false , 0 , subs ( 4 ) ) ;
176
+ let one_big_neg_plus_two_neg = Timestamp :: new ( true , 4 , subs ( 0 ) ) ;
179
177
180
178
// +self + +rhs
181
179
assert_eq ! ( one + two, three) ;
@@ -200,17 +198,17 @@ mod test {
200
198
201
199
#[ test]
202
200
fn timestamp_sub ( ) {
203
- let one = Timestamp :: new ( false , 1 , 1 ) . unwrap ( ) ;
204
- let one_big = Timestamp :: new ( false , 1 , SUBSECONDS_PER_SECOND - 1 ) . unwrap ( ) ;
205
- let two = Timestamp :: new ( false , 2 , 2 ) . unwrap ( ) ;
206
- let three = Timestamp :: new ( false , 3 , 3 ) . unwrap ( ) ;
201
+ let one = Timestamp :: new ( false , 1 , subs ( 1 ) ) ;
202
+ let one_big = Timestamp :: new ( false , 1 , subs ( SUBSECONDS_PER_SECOND - 1 ) ) ;
203
+ let two = Timestamp :: new ( false , 2 , subs ( 2 ) ) ;
204
+ let three = Timestamp :: new ( false , 3 , subs ( 3 ) ) ;
207
205
208
- let one_neg = Timestamp :: new ( true , 1 , 1 ) . unwrap ( ) ;
209
- let two_neg = Timestamp :: new ( true , 2 , 2 ) . unwrap ( ) ;
210
- let three_neg = Timestamp :: new ( true , 3 , 3 ) . unwrap ( ) ;
206
+ let one_neg = Timestamp :: new ( true , 1 , subs ( 1 ) ) ;
207
+ let two_neg = Timestamp :: new ( true , 2 , subs ( 2 ) ) ;
208
+ let three_neg = Timestamp :: new ( true , 3 , subs ( 3 ) ) ;
211
209
212
- let one_minus_two = Timestamp :: new ( true , 1 , 1 ) . unwrap ( ) ;
213
- let one_minus_one_big = Timestamp :: new ( true , 0 , SUBSECONDS_PER_SECOND - 2 ) . unwrap ( ) ;
210
+ let one_minus_two = Timestamp :: new ( true , 1 , subs ( 1 ) ) ;
211
+ let one_minus_one_big = Timestamp :: new ( true , 0 , subs ( SUBSECONDS_PER_SECOND - 2 ) ) ;
214
212
215
213
assert_eq ! ( one - one_big, one_minus_one_big) ;
216
214
0 commit comments