pub struct ModelGenerationAdmission { /* private fields */ }Expand description
Shared admission gate derived from a typed provider concurrency contract.
Clones share the same semaphore. A permit is owned and releases capacity on every exit path, including future cancellation and task abortion.
Implementations§
Source§impl ModelGenerationAdmission
impl ModelGenerationAdmission
pub fn new(concurrency: ModelGenerationConcurrency) -> Self
Sourcepub fn with_scheduler_quota(
self,
scheduler: Arc<TaskScheduler>,
quota: TaskSchedulerQuota,
priority: TaskPriority,
label: impl Into<String>,
) -> Result<Self, TaskSchedulerError>
pub fn with_scheduler_quota( self, scheduler: Arc<TaskScheduler>, quota: TaskSchedulerQuota, priority: TaskPriority, label: impl Into<String>, ) -> Result<Self, TaskSchedulerError>
Attach a provider/model quota to this gate without creating another queue. Each permit reserves the quota through the existing scheduler actor, while the local semaphore retains the client’s own contract.
Sourcepub fn with_model_generation_pool(
self,
scheduler: Arc<TaskScheduler>,
pool: ModelGenerationPool,
priority: TaskPriority,
label: impl Into<String>,
) -> Result<Self, TaskSchedulerError>
pub fn with_model_generation_pool( self, scheduler: Arc<TaskScheduler>, pool: ModelGenerationPool, priority: TaskPriority, label: impl Into<String>, ) -> Result<Self, TaskSchedulerError>
Attach a provider pool descriptor and its shared scheduler quota.
The pool is configuration evidence only; live reservations continue to be owned by the existing scheduler actor and local semaphore.
pub fn concurrency(&self) -> ModelGenerationConcurrency
Sourcepub async fn pool_health(
&self,
) -> Result<Option<ModelGenerationPoolHealthSnapshot>, TaskSchedulerError>
pub async fn pool_health( &self, ) -> Result<Option<ModelGenerationPoolHealthSnapshot>, TaskSchedulerError>
Return secret-free pool configuration and point-in-time health.
None means this admission was created for a custom client that did
not publish a ModelGenerationPool.
Sourcepub async fn acquire(
&self,
cancellation: &CancellationToken,
) -> Result<ModelGenerationPermit, ModelGenerationAdmissionError>
pub async fn acquire( &self, cancellation: &CancellationToken, ) -> Result<ModelGenerationPermit, ModelGenerationAdmissionError>
Wait for active-generation capacity without applying an active generation deadline to the queue wait.
Trait Implementations§
Source§impl Clone for ModelGenerationAdmission
impl Clone for ModelGenerationAdmission
Source§fn clone(&self) -> ModelGenerationAdmission
fn clone(&self) -> ModelGenerationAdmission
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ModelGenerationAdmission
impl Debug for ModelGenerationAdmission
Auto Trait Implementations§
impl !RefUnwindSafe for ModelGenerationAdmission
impl !UnwindSafe for ModelGenerationAdmission
impl Freeze for ModelGenerationAdmission
impl Send for ModelGenerationAdmission
impl Sync for ModelGenerationAdmission
impl Unpin for ModelGenerationAdmission
impl UnsafeUnpin for ModelGenerationAdmission
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
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<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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