batch_mode_batch_schema/
batch_request_record.rs1crate::ix!();
3
4#[derive(Builder,Getters,Clone,Debug,Serialize,Deserialize)]
5#[builder(setter(into))]
6#[getset(get="pub")]
7pub struct BatchRequestRecord {
8 id: BatchRequestId,
9 custom_id: CustomRequestId,
10 prompt: Option<String>,
11 messages: Option<Vec<String>>,
12}
13
14#[cfg(test)]
15mod batch_request_record_tests {
16 use super::*;
17 use serde_json::json;
18
19 #[traced_test]
20 fn test_batch_request_record_deserialization_full() {
21 info!("Starting test: test_batch_request_record_deserialization_full");
22
23 let json_data = json!({
24 "id": "batch_req_123",
25 "custom_id": "custom_456",
26 "prompt": "Test prompt",
27 "messages": ["Message 1", "Message 2"]
28 });
29
30 let record: BatchRequestRecord = serde_json::from_value(json_data).unwrap();
31
32 pretty_assert_eq!(record.id().as_str(), "batch_req_123");
33 pretty_assert_eq!(record.custom_id().as_str(), "custom_456");
34 pretty_assert_eq!(*record.prompt(), Some("Test prompt".to_string()));
35
36 pretty_assert_eq!(
38 record.messages().as_ref().unwrap(),
39 &["Message 1".to_string(), "Message 2".to_string()]
40 );
41
42 info!("Finished test: test_batch_request_record_deserialization_full");
43 }
44
45 #[test]
46 fn test_batch_request_record_deserialization_partial() {
47 let json_data = json!({
48 "id": "batch_req_789",
49 "custom_id": "custom_012"
50 });
52
53 let record: BatchRequestRecord = serde_json::from_value(json_data).unwrap();
54
55 pretty_assert_eq!(record.id().as_str(), "batch_req_789");
56 pretty_assert_eq!(record.custom_id().as_str(), "custom_012");
57 assert!(record.prompt().is_none());
58 assert!(record.messages().is_none());
59 }
60
61 #[test]
62 fn test_batch_request_record_missing_required_fields() {
63 let json_data = json!({
64 "custom_id": "custom_345"
65 });
67
68 let result: Result<BatchRequestRecord, _> = serde_json::from_value(json_data);
69 assert!(result.is_err(), "Deserialization should fail if required fields are missing");
70 }
71}