#[derive(Debug, PartialEq, Eq, Clone)]
pub enum PromptMessage {
SystemMessage(String),
HumanMessage(String),
AIMessage(String),
}
impl PromptMessage {
pub fn content(&self) -> &str {
match self {
PromptMessage::SystemMessage(message) => message,
PromptMessage::HumanMessage(message) => message,
PromptMessage::AIMessage(message) => message,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn prompt_message_content() {
let test_string = String::from("Test String");
assert_eq!(
&test_string,
PromptMessage::HumanMessage(test_string.clone()).content()
);
assert_eq!(
&test_string,
PromptMessage::AIMessage(test_string.clone()).content()
);
assert_eq!(
&test_string,
PromptMessage::SystemMessage(test_string.clone()).content()
);
}
}