1#[cfg(feature = "serde")]
4use serde::{Deserialize, Serialize};
5
6#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)]
7#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
8#[cfg_attr(feature = "serde", serde(rename_all = "lowercase"))]
9pub enum MetadataConflictResolution {
10 #[default]
11 Overwrite,
12 Skip,
13}
14
15#[cfg(all(test, feature = "serde"))]
16mod metadata_conflict_resolution {
17 use rstest::rstest;
18
19 use super::*;
20
21 #[test]
22 fn test_default() {
23 assert_eq!(
24 MetadataConflictResolution::default(),
25 MetadataConflictResolution::Overwrite
26 );
27 }
28
29 #[rstest]
30 #[case::lower(MetadataConflictResolution::Overwrite, "overwrite")]
31 #[case::lower(MetadataConflictResolution::Skip, "skip")]
32 fn test_deserialize<D, 'de>(#[case] expected: MetadataConflictResolution, #[case] input: D)
33 where
34 D: serde::de::IntoDeserializer<'de>,
35 {
36 let actual: MetadataConflictResolution =
37 MetadataConflictResolution::deserialize(input.into_deserializer()).unwrap();
38 assert_eq!(actual, expected);
39 }
40}