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}