pub struct AttributionTracker { /* private fields */ }Expand description
Tracks costs per agent/node and computes ETPAO attribution once the chain outcome is known.
Implementations§
Source§impl AttributionTracker
impl AttributionTracker
pub fn new(chain_id: String) -> Self
Sourcepub fn record_cost(
&mut self,
agent_id: String,
node_id: String,
tokens: u64,
cost_micros: u64,
)
pub fn record_cost( &mut self, agent_id: String, node_id: String, tokens: u64, cost_micros: u64, )
Record cost for an agent at a specific work node.
Sourcepub fn mark_accepted_path(&mut self, node_ids: &[String])
pub fn mark_accepted_path(&mut self, node_ids: &[String])
Mark which nodes are on the accepted outcome path.
Sourcepub fn set_outcome(&mut self, verdict: OutcomeVerdict)
pub fn set_outcome(&mut self, verdict: OutcomeVerdict)
Set the final chain outcome verdict.
Sourcepub fn compute_attribution(&self) -> ChainAttribution
pub fn compute_attribution(&self) -> ChainAttribution
Compute the final ETPAO attribution. Costs on rejected/redundant paths are classified as waste; only accepted-path costs count toward the effective metric.
pub fn outcome(&self) -> OutcomeVerdict
Auto Trait Implementations§
impl Freeze for AttributionTracker
impl RefUnwindSafe for AttributionTracker
impl Send for AttributionTracker
impl Sync for AttributionTracker
impl Unpin for AttributionTracker
impl UnsafeUnpin for AttributionTracker
impl UnwindSafe for AttributionTracker
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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 more