use statime_base::Timestamp;
mod control_message;
pub mod interface;
pub mod networkaddress;
mod raw_socket;
pub mod socket;
pub(crate) fn cerr(t: libc::c_int) -> std::io::Result<libc::c_int> {
match t {
-1 => Err(std::io::Error::last_os_error()),
_ => Ok(t),
}
}
#[cfg_attr(target_os = "macos", allow(unused))]
#[expect(
clippy::cast_sign_loss,
reason = "tv_usec is always in range for the nanos field."
)]
#[allow(
clippy::cast_possible_truncation,
reason = "tv_usec is always in range for the conversion."
)]
#[allow(
clippy::cast_lossless,
reason = "cast is not lossless on all platforms."
)]
fn timestamp_from_timespec<T>(timespec: libc::timespec) -> Timestamp<T> {
Timestamp::from_seconds_nanos_since_unix_epoch(timespec.tv_sec as _, timespec.tv_nsec as _)
}
#[expect(
clippy::cast_sign_loss,
reason = "tv_usec is always in range for the nanos field."
)]
#[allow(
clippy::cast_possible_truncation,
reason = "tv_usec is always in range for the conversion."
)]
#[allow(
clippy::cast_lossless,
reason = "cast is not lossless on all platforms."
)]
fn timestamp_from_timeval<T>(timeval: libc::timeval) -> Timestamp<T> {
Timestamp::from_seconds_nanos_since_unix_epoch(
timeval.tv_sec as _,
(timeval.tv_usec * 1000) as _,
)
}