Skip to main content

Tsc

Struct Tsc 

Source
pub struct Tsc(/* private fields */);
Expand description

The x86_64 timestamp counter (TSC).

Note that not all TSC implementations have a constant frequency. On Linux, try_new_linux_sys checks that the frequency is constant.

Implementations§

Source§

impl Tsc

Source

pub fn try_new_assume_stable() -> Result<Self, TscUnavailable>

Returns Ok(Tsc) if the CPUID TSC flag is set.

The TSC flag indicates the counter exists but does not guarantee stability across cores or CPU power states. Prefer Tsc::try_new_linux_sys on Linux.

Source

pub fn try_new_linux_sys() -> Result<Self, TscUnavailable>

Returns Ok(Tsc) if the Linux kernel reports tsc as an available clocksource.

A TSC listed as an available clocksource means the kernel has verified stability across cores and power state changes, making it safe for benchmarking.

Trait Implementations§

Source§

impl Clock for Tsc

Source§

impl Clone for Tsc

Source§

fn clone(&self) -> Tsc

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Tsc

Source§

impl Debug for Tsc

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Tsc

Source§

impl Hash for Tsc

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Tsc

Source§

fn eq(&self, other: &Tsc) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Tsc

Auto Trait Implementations§

§

impl Freeze for Tsc

§

impl RefUnwindSafe for Tsc

§

impl Send for Tsc

§

impl Sync for Tsc

§

impl Unpin for Tsc

§

impl UnsafeUnpin for Tsc

§

impl UnwindSafe for Tsc

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.