pub enum RoutingWorkload {
Interactive,
Batch,
Background,
LocalPreferred,
Fastest,
Quality,
}Expand description
How latency-sensitive this generation request is.
Variants§
Interactive
User-facing, interactive request where latency matters.
Batch
Batch job where latency matters somewhat, but quality/cost matter more.
Background
Background or offline work where latency is a weak concern.
LocalPreferred
Caller explicitly prefers on-device models. Distinct from
Background (which is “this is a background job, latency
barely matters”). The caller may be doing latency-sensitive
interactive work but wants the privacy / cost / offline
properties of local inference. Same local_bonus as
Background plus a slightly more quality-aware weight profile
— the caller chose local for a reason, not because the work is
throwaway.
Fastest
Aggressive latency bias for time-to-first-token. Voice turns
(specifically the fast track in the two-track sidecar pattern)
pick this. Quality and cost are heavily downweighted; the
router prefers whichever model produces a first token soonest.
On macOS 26+ this typically resolves to apple/foundation:default
via the Foundation Models system-LLM bonus. Reached via the
IntentHint::prefer_fast flag (or RoutingWorkload::Fastest
directly when callers know they want it).
Quality
Quality-critical, infrequent work where the BEST available model
matters far more than latency or cost — e.g. building/verifying an
agent, deriving a contract, structured extraction that a weak model
gets wrong. The mirror image of Fastest: quality dominates, latency
and cost are near-floor, so the most capable candidate wins decisively
instead of the cheapest one squeaking past on cost. Reached via the
IntentHint::prefer_quality flag.
Implementations§
Trait Implementations§
Source§impl Clone for RoutingWorkload
impl Clone for RoutingWorkload
impl Copy for RoutingWorkload
Source§impl Debug for RoutingWorkload
impl Debug for RoutingWorkload
Source§impl Default for RoutingWorkload
impl Default for RoutingWorkload
Source§impl<'de> Deserialize<'de> for RoutingWorkload
impl<'de> Deserialize<'de> for RoutingWorkload
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for RoutingWorkload
Source§impl PartialEq for RoutingWorkload
impl PartialEq for RoutingWorkload
Source§impl Serialize for RoutingWorkload
impl Serialize for RoutingWorkload
impl StructuralPartialEq for RoutingWorkload
Auto Trait Implementations§
impl Freeze for RoutingWorkload
impl RefUnwindSafe for RoutingWorkload
impl Send for RoutingWorkload
impl Sync for RoutingWorkload
impl Unpin for RoutingWorkload
impl UnsafeUnpin for RoutingWorkload
impl UnwindSafe for RoutingWorkload
Blanket Implementations§
impl<T> Boilerplate for T
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.impl<T> ErasedDestructor for Twhere
T: 'static,
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> ⓘ
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> ⓘ
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