Skip to main content

latch_core/
meter.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq)]
4pub struct SessionUsage {
5    pub input_tokens: u64,
6    pub output_tokens: u64,
7    pub requests: u64,
8    pub estimated_cost: f64,
9}
10
11#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
12pub enum MeterRejectReason {
13    SessionTokenLimitExceeded,
14    SessionRequestLimitExceeded,
15}
16
17#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
18pub enum MeterVerdict {
19    Allow,
20    Reject(MeterRejectReason),
21}