pub enum TokenSource {
Root,
RlmIteration,
RlmSubcall,
ToolEmbedded,
}Expand description
Origin of a token accounting delta.
Distinguishes the root chat round-trip from tokens spent inside Recursive Language Model (RLM) sub-processing so cost dashboards can break down spend by source instead of aggregating everything under the chat model.
§Examples
use codetether_agent::session::TokenSource;
let src = TokenSource::RlmSubcall;
assert_eq!(src.as_str(), "rlm_subcall");
assert!(src.is_rlm());Variants§
Root
A primary chat completion for the user-facing session.
RlmIteration
A single iteration of the RLM analysis loop (root RLM model).
RlmSubcall
A sub-LLM call dispatched from inside the RLM loop (subcall model).
ToolEmbedded
An LLM call issued from inside a tool implementation.
Implementations§
Source§impl TokenSource
impl TokenSource
Sourcepub const fn as_str(self) -> &'static str
pub const fn as_str(self) -> &'static str
Stable string identifier suitable for logs and JSONL records.
§Examples
use codetether_agent::session::TokenSource;
assert_eq!(TokenSource::Root.as_str(), "root");
assert_eq!(TokenSource::ToolEmbedded.as_str(), "tool_embedded");Sourcepub const fn is_rlm(self) -> bool
pub const fn is_rlm(self) -> bool
Returns true when the source is any RLM-attributable variant.
Useful for telemetry splits like “chat tokens vs RLM overhead”.
§Examples
use codetether_agent::session::TokenSource;
assert!(TokenSource::RlmIteration.is_rlm());
assert!(TokenSource::RlmSubcall.is_rlm());
assert!(!TokenSource::Root.is_rlm());Trait Implementations§
Source§impl Clone for TokenSource
impl Clone for TokenSource
Source§fn clone(&self) -> TokenSource
fn clone(&self) -> TokenSource
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TokenSource
impl Debug for TokenSource
Source§impl<'de> Deserialize<'de> for TokenSource
impl<'de> Deserialize<'de> for TokenSource
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Hash for TokenSource
impl Hash for TokenSource
Source§impl PartialEq for TokenSource
impl PartialEq for TokenSource
Source§impl Serialize for TokenSource
impl Serialize for TokenSource
impl Copy for TokenSource
impl Eq for TokenSource
impl StructuralPartialEq for TokenSource
Auto Trait Implementations§
impl Freeze for TokenSource
impl RefUnwindSafe for TokenSource
impl Send for TokenSource
impl Sync for TokenSource
impl Unpin for TokenSource
impl UnsafeUnpin for TokenSource
impl UnwindSafe for TokenSource
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
Mutably borrows from an owned value. Read more
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§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
Compare self to
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<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>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more