pub enum Lane {
Cheap,
Read,
Write,
}Expand description
The three cost shapes a transfer can have, and the thing a lane floor protects.
See OpClass::lane for why the split exists at all, and
Governor::lane_ceiling for what a floor actually reserves.
Variants§
Cheap
A ref advertisement: no pack, milliseconds, 4 MiB.
Read
A pack out of the store — clone and fetch. Mostly page cache.
Write
A pack in, and the indexer behind it — push and gc.
Implementations§
Source§impl Lane
impl Lane
The slots of the governed limit this lane is guaranteed, as
limit * numerator / denominator, never below Lane::floor_min.
An eighth for cheap and a quarter for read: a write storm can take
at most five eighths of the box, so an ls-remote and a clone always
have somewhere to land. write reserves nothing, because it is the lane
that would starve the others and it is never the one that is starved —
whatever the other two are not using is its.
Trait Implementations§
impl Copy for Lane
impl Eq for Lane
Source§impl Ord for Lane
impl Ord for Lane
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for Lane
impl PartialOrd for Lane
impl StructuralPartialEq for Lane
Auto Trait Implementations§
impl Freeze for Lane
impl RefUnwindSafe for Lane
impl Send for Lane
impl Sync for Lane
impl Unpin for Lane
impl UnsafeUnpin for Lane
impl UnwindSafe for Lane
Blanket Implementations§
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.