pub struct InFlightKeys(Mutex<FxHashMap<String, usize>>);Expand description
The refcounted set of cache keys with a data-model write in flight. One
instance lives on AppState, shared by every request. The count is how
many live guards currently name that key, not a byte size or anything
meaningful beyond “still positive”.
Tuple Fields§
§0: Mutex<FxHashMap<String, usize>>Implementations§
Source§impl InFlightKeys
impl InFlightKeys
Sourcepub fn begin(self: &Arc<Self>, key: String) -> InFlightGuard
pub fn begin(self: &Arc<Self>, key: String) -> InFlightGuard
Mark key as in flight and return a guard that un-marks it on drop.
Takes self as Arc so the returned guard can outlive the borrow —
it is moved into the spawned task, which outlives the request handler
that calls begin.
Trait Implementations§
Source§impl Default for InFlightKeys
impl Default for InFlightKeys
Source§fn default() -> InFlightKeys
fn default() -> InFlightKeys
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for InFlightKeys
impl RefUnwindSafe for InFlightKeys
impl Send for InFlightKeys
impl Sync for InFlightKeys
impl Unpin for InFlightKeys
impl UnwindSafe for InFlightKeys
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
Casts
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.