pub enum FreeReason {
Discovery,
InterimInputRequired,
TaskCreated,
TaskInProgress,
TaskNotDelivered,
TaskDrive,
MissingTaskAttribution,
MissingTaskId,
Subscription,
ProtocolError,
UnrecognizedResult,
}Expand description
Why a call was not billed. Kept specific so an operator answering “why is my bill lower than my request count” gets a real answer from the metrics.
Variants§
Discovery
tools/list and friends: the cost of connecting, not of work.
InterimInputRequired
An interim input_required result. Nothing delivered yet.
TaskCreated
A CreateTaskResult: work accepted, not performed.
TaskInProgress
A poll of a task still working or awaiting input.
TaskNotDelivered
A task that reached a terminal state without delivering: failed, cancelled.
TaskDrive
tasks/update or tasks/cancel: driving a task, not receiving its output.
MissingTaskAttribution
A completed task could not be joined to the call that created it.
MissingTaskId
A completed task omitted its required durable identifier, so repeat polls could not be made idempotent.
Subscription
A subscriptions/listen stream. Not a discrete call; see the findings doc.
ProtocolError
A JSON-RPC error. The server did not deliver.
UnrecognizedResult
A result shape this build does not recognize. Fails toward not charging.
Implementations§
Source§impl FreeReason
impl FreeReason
Sourcepub const ALL: [FreeReason; 11]
pub const ALL: [FreeReason; 11]
Every reason, in a stable order.
Callers index metric slots by position, so appending is safe and reordering is not.
Sourcepub const fn as_str(self) -> &'static str
pub const fn as_str(self) -> &'static str
The stable wire name.
One spelling per variant, defined here so metrics, bindings and the conformance vectors cannot drift into three different answers for the same reason. Written out rather than derived from the identifier: a rename must not silently change what an operator’s dashboard or a caller’s branch is keyed on.
Trait Implementations§
Source§impl Clone for FreeReason
impl Clone for FreeReason
Source§fn clone(&self) -> FreeReason
fn clone(&self) -> FreeReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for FreeReason
Source§impl Debug for FreeReason
impl Debug for FreeReason
impl Eq for FreeReason
Source§impl Hash for FreeReason
impl Hash for FreeReason
Source§impl PartialEq for FreeReason
impl PartialEq for FreeReason
impl StructuralPartialEq for FreeReason
Auto Trait Implementations§
impl Freeze for FreeReason
impl RefUnwindSafe for FreeReason
impl Send for FreeReason
impl Sync for FreeReason
impl Unpin for FreeReason
impl UnsafeUnpin for FreeReason
impl UnwindSafe for FreeReason
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<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.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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