gpt_batch_scribe/
gpt_message_role.rs

1crate::ix!();
2
3/// Enumeration of roles in a message.
4#[derive(Debug, Serialize, Deserialize)]
5pub enum GptMessageRole {
6    System,
7    User,
8}
9
10pub(crate) mod message_role {
11
12    use super::*;
13
14    /// Serialize the `GptMessageRole` enum into a string.
15    pub fn serialize<S>(value: &GptMessageRole, serializer: S) -> Result<S::Ok, S::Error>
16    where
17        S: Serializer,
18    {
19        let role_str = match value {
20            GptMessageRole::System => "system",
21            GptMessageRole::User => "user",
22        };
23        serializer.serialize_str(role_str)
24    }
25
26    /// Deserialize a string into a `GptMessageRole` enum.
27    pub fn deserialize<'de, D>(deserializer: D) -> Result<GptMessageRole, D::Error>
28    where
29        D: Deserializer<'de>,
30    {
31        let s: String = Deserialize::deserialize(deserializer)?;
32        match s.as_ref() {
33            "system" => Ok(GptMessageRole::System),
34            "user" => Ok(GptMessageRole::User),
35            _ => Err(DeError::custom("unknown message role")),
36        }
37    }
38}