1
1
use crate :: { Clock , LeapIndicator , TimeOffset , Timestamp } ;
2
+ use std:: time:: Duration ;
3
+ #[ cfg( target_os = "linux" ) ]
2
4
use std:: {
3
- os:: unix:: io:: { FromRawFd , IntoRawFd , RawFd } ,
5
+ os:: unix:: io:: { IntoRawFd , RawFd } ,
4
6
path:: Path ,
5
- time:: Duration ,
6
7
} ;
7
8
8
9
/// A Unix OS clock
9
10
#[ derive( Debug , Clone , Copy ) ]
10
11
pub struct UnixClock {
11
12
clock : libc:: clockid_t ,
13
+ #[ cfg( target_os = "linux" ) ]
12
14
fd : Option < RawFd > ,
13
15
}
14
16
@@ -29,6 +31,7 @@ impl UnixClock {
29
31
/// ```
30
32
pub const CLOCK_REALTIME : Self = UnixClock {
31
33
clock : libc:: CLOCK_REALTIME ,
34
+ #[ cfg( target_os = "linux" ) ]
32
35
fd : None ,
33
36
} ;
34
37
@@ -46,6 +49,7 @@ impl UnixClock {
46
49
/// Ok(())
47
50
/// }
48
51
/// ```
52
+ #[ cfg( target_os = "linux" ) ]
49
53
pub fn open ( path : impl AsRef < Path > ) -> std:: io:: Result < Self > {
50
54
let file = std:: fs:: OpenOptions :: new ( )
51
55
. write ( true )
@@ -59,6 +63,7 @@ impl UnixClock {
59
63
// Consume an fd and produce a clock id. Clock id is only valid
60
64
// so long as the fd is open, so the RawFd here should
61
65
// not be borrowed.
66
+ #[ cfg( target_os = "linux" ) ]
62
67
fn safe_from_raw_fd ( fd : RawFd ) -> Self {
63
68
let clock = ( ( !( fd as libc:: clockid_t ) ) << 3 ) | 3 ;
64
69
@@ -430,12 +435,6 @@ impl UnixClock {
430
435
}
431
436
}
432
437
433
- impl FromRawFd for UnixClock {
434
- unsafe fn from_raw_fd ( fd : RawFd ) -> Self {
435
- Self :: safe_from_raw_fd ( fd)
436
- }
437
- }
438
-
439
438
impl Clock for UnixClock {
440
439
type Error = Error ;
441
440
0 commit comments