batch_mode_batch_scribe/
language_model_api_url.rs

1// ---------------- [ File: batch-mode-batch-scribe/src/language_model_api_url.rs ]
2crate::ix!();
3
4/// Enumeration of API URLs.
5#[derive(Clone,Debug, Serialize, Deserialize)]
6pub enum LanguageModelApiUrl {
7
8    #[serde(rename = "/v1/chat/completions")]
9    ChatCompletions,
10}
11
12impl fmt::Display for LanguageModelApiUrl {
13
14    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
15        match self {
16            LanguageModelApiUrl::ChatCompletions => write!(f, "/v1/chat/completions"),
17        }
18    }
19}
20#[cfg(test)]
21mod language_model_api_url_exhaustive_tests {
22    use super::*;
23
24    #[traced_test]
25    fn display_renders_chat_completions() {
26        trace!("===== BEGIN TEST: display_renders_chat_completions =====");
27        let url = LanguageModelApiUrl::ChatCompletions;
28        let result = format!("{}", url);
29        debug!("Formatted Display output: {}", result);
30        pretty_assert_eq!(result, "/v1/chat/completions", "Display should render the correct endpoint");
31        trace!("===== END TEST: display_renders_chat_completions =====");
32    }
33
34    #[traced_test]
35    fn serialize_chat_completions_produces_expected_json() {
36        trace!("===== BEGIN TEST: serialize_chat_completions_produces_expected_json =====");
37        let url = LanguageModelApiUrl::ChatCompletions;
38        let serialized = serde_json::to_string(&url)
39            .expect("Failed to serialize LanguageModelApiUrl");
40        debug!("Serialized JSON: {}", serialized);
41        pretty_assert_eq!(serialized, r#""/v1/chat/completions""#, "Serialization should match expected JSON");
42        trace!("===== END TEST: serialize_chat_completions_produces_expected_json =====");
43    }
44
45    #[traced_test]
46    fn deserialize_chat_completions_from_json() {
47        trace!("===== BEGIN TEST: deserialize_chat_completions_from_json =====");
48        let json_str = r#""/v1/chat/completions""#;
49        let deserialized: LanguageModelApiUrl = serde_json::from_str(json_str)
50            .expect("Failed to deserialize LanguageModelApiUrl");
51        debug!("Deserialized enum variant: {:?}", deserialized);
52        match deserialized {
53            LanguageModelApiUrl::ChatCompletions => {
54                trace!("Correctly deserialized as ChatCompletions");
55            }
56        }
57        trace!("===== END TEST: deserialize_chat_completions_from_json =====");
58    }
59}