vstorage 0.6.0

Common API for various icalendar/vcard storages.
Documentation
// Copyright 2023-2026 Hugo Osvaldo Barrera
//
// SPDX-License-Identifier: EUPL-1.2

//! Property analysis types.

use crate::base::Property;

/// Represents a detected state difference for a property.
#[derive(Debug, Clone)]
pub enum PropertyChange {
    /// Property doesn't exist anywhere (only in status).
    OnNeither { property: Property },

    /// Property exists only on side A.
    OnlyA {
        property: Property,
        value_a: String,
        previous: Option<String>,
    },

    /// Property exists only on side B.
    OnlyB {
        property: Property,
        value_b: String,
        previous: Option<String>,
    },

    /// Property exists on both sides.
    OnBoth {
        property: Property,
        value_a: String,
        value_b: String,
        previous: Option<String>,
    },
}