use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum RunType {
Llm,
Chain,
Tool,
Retriever,
Embedding,
Prompt,
Parser,
}
impl RunType {
pub fn as_str(&self) -> &'static str {
match self {
Self::Llm => "llm",
Self::Chain => "chain",
Self::Tool => "tool",
Self::Retriever => "retriever",
Self::Embedding => "embedding",
Self::Prompt => "prompt",
Self::Parser => "parser",
}
}
pub fn emoji(&self) -> &'static str {
match self {
Self::Llm => "🤖",
Self::Chain => "🔗",
Self::Tool => "🔧",
Self::Retriever => "📚",
Self::Embedding => "📊",
Self::Prompt => "📝",
Self::Parser => "📄",
}
}
}
impl std::fmt::Display for RunType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.as_str())
}
}