#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RequestStatus {
Pending,
Completed,
Failed,
Rejected,
}
impl RequestStatus {
pub const fn as_str(&self) -> &'static str {
match self {
Self::Pending => "pending",
Self::Completed => "completed",
Self::Failed => "failed",
Self::Rejected => "rejected",
}
}
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub enum RequestKind {
#[default]
Turn,
Probe,
Utility,
}
impl RequestKind {
pub const fn as_str(self) -> &'static str {
match self {
Self::Turn => "turn",
Self::Probe => "probe",
Self::Utility => "utility",
}
}
pub const fn classify(max_tokens: Option<u32>) -> Self {
match max_tokens {
Some(n) if n <= 1 => Self::Probe,
_ => Self::Turn,
}
}
}