pub struct AtomicDriverMode { /* private fields */ }Expand description
Driver 模式(原子版本,用于线程间共享)
§使用场景
- TX 线程读取模式决定是否发送周期性指令
- 主线程通过
set_mode()切换模式
§示例
use piper_driver::mode::{AtomicDriverMode, DriverMode};
use std::sync::atomic::Ordering;
let mode = AtomicDriverMode::new(DriverMode::Normal);
// 读取模式
let current = mode.get(Ordering::Relaxed);
// 切换到回放模式
mode.set(DriverMode::Replay, Ordering::Relaxed);Implementations§
Source§impl AtomicDriverMode
impl AtomicDriverMode
Sourcepub fn new(mode: DriverMode) -> Self
pub fn new(mode: DriverMode) -> Self
创建新的原子模式
Sourcepub fn get(&self, ordering: Ordering) -> DriverMode
pub fn get(&self, ordering: Ordering) -> DriverMode
Sourcepub fn set(&self, mode: DriverMode, ordering: Ordering)
pub fn set(&self, mode: DriverMode, ordering: Ordering)
Sourcepub fn compare_exchange(
&self,
current: DriverMode,
new: DriverMode,
success: Ordering,
failure: Ordering,
) -> bool
pub fn compare_exchange( &self, current: DriverMode, new: DriverMode, success: Ordering, failure: Ordering, ) -> bool
Trait Implementations§
Source§impl Clone for AtomicDriverMode
impl Clone for AtomicDriverMode
Auto Trait Implementations§
impl !Freeze for AtomicDriverMode
impl RefUnwindSafe for AtomicDriverMode
impl Send for AtomicDriverMode
impl Sync for AtomicDriverMode
impl Unpin for AtomicDriverMode
impl UnwindSafe for AtomicDriverMode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more