use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct LoraAdapterInfo {
pub id: usize,
pub path: String,
pub scale: f32,
pub task_name: String,
pub prompt_prefix: String,
}
#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
pub struct LoraScaleRequest {
pub id: usize,
#[serde(default)]
pub scale: f32,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct LoraApplyResponse {
pub success: bool,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn a_scale_request_without_a_scale_reads_zero() {
let r: LoraScaleRequest = serde_json::from_str(r#"{"id": 1}"#).unwrap();
assert_eq!(r, LoraScaleRequest { id: 1, scale: 0.0 });
assert!(serde_json::from_str::<LoraScaleRequest>(r#"{"scale": 1.0}"#).is_err());
}
}