use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DeleteRequest {
pub model: String,
}
impl DeleteRequest {
pub fn new(model: impl Into<String>) -> Self {
Self {
model: model.into(),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_delete_request_serialization() {
let request = DeleteRequest {
model: "gemma3".to_string(),
};
let json = serde_json::to_string(&request).unwrap();
assert!(json.contains("\"model\":\"gemma3\""));
}
#[test]
fn test_delete_request_deserialization() {
let json = r#"{"model": "llama3"}"#;
let request: DeleteRequest = serde_json::from_str(json).unwrap();
assert_eq!(request.model, "llama3");
}
#[test]
fn test_delete_request_new() {
let request = DeleteRequest::new("model-a");
assert_eq!(request.model, "model-a");
}
#[test]
fn test_delete_request_roundtrip() {
let request = DeleteRequest::new("source-model");
let json = serde_json::to_string(&request).unwrap();
let deserialized: DeleteRequest = serde_json::from_str(&json).unwrap();
assert_eq!(request, deserialized);
}
#[test]
fn test_delete_request_is_send_sync() {
fn assert_send_sync<T: Send + Sync>() {}
assert_send_sync::<DeleteRequest>();
}
}