use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
pub enum DuplicateStrategy {
#[default]
Warn,
Error,
Replace,
Ignore,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_default_is_warn() {
assert_eq!(DuplicateStrategy::default(), DuplicateStrategy::Warn);
}
#[test]
fn test_serialization_roundtrip() {
let strategies = [
DuplicateStrategy::Warn,
DuplicateStrategy::Error,
DuplicateStrategy::Replace,
DuplicateStrategy::Ignore,
];
for strategy in &strategies {
let json = serde_json::to_string(strategy).unwrap();
let parsed: DuplicateStrategy = serde_json::from_str(&json).unwrap();
assert_eq!(&parsed, strategy);
}
}
#[test]
#[allow(clippy::clone_on_copy)]
fn test_clone_and_copy() {
let s = DuplicateStrategy::Error;
let cloned = s.clone();
let copied = s;
assert_eq!(cloned, copied);
}
}