use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(default)]
pub struct LogsRequest {
pub tail_lines: u32,
}
impl Default for LogsRequest {
fn default() -> Self {
Self { tail_lines: 500 }
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn defaults_to_500_lines() {
assert_eq!(LogsRequest::default().tail_lines, 500);
}
#[test]
fn missing_field_round_trips_to_default() {
let req: LogsRequest = serde_json::from_str("{}").unwrap();
assert_eq!(req.tail_lines, 500);
}
#[test]
fn explicit_field_overrides_default() {
let req: LogsRequest = serde_json::from_str(r#"{"tail_lines": 100}"#).unwrap();
assert_eq!(req.tail_lines, 100);
}
}