pub struct TableStore { /* private fields */ }Expand description
表快照库:表名 → 当前代 Arc<TableData>。
- 读(调用者取数):
snapshot()短读锁 clone 一个Arc——O(1),无数据复制; 之后完全无锁读该代。 - 写(刷新换代):tick 在锁外整建新
TableData,insert()只在写锁内做一次 O(1) 的 Arc 指针替换——读者不被重活阻塞,永不读到半代数据。
Implementations§
Trait Implementations§
Source§impl Default for TableStore
impl Default for TableStore
Source§fn default() -> TableStore
fn default() -> TableStore
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for TableStore
impl RefUnwindSafe for TableStore
impl Send for TableStore
impl Sync for TableStore
impl Unpin for TableStore
impl UnsafeUnpin for TableStore
impl UnwindSafe for TableStore
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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