attune-core 0.1.0

Core traits and types for attune: runtime-mutable, persisted, observable configuration.
Documentation
use std::time::SystemTime;

use crate::StoredValue;

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ChangeSource {
    Local,
    External,
}

#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ChangeEvent {
    Set {
        key: String,
        old_value: Option<StoredValue>,
        new_value: StoredValue,
        source: ChangeSource,
        timestamp: SystemTime,
    },
    Deleted {
        key: String,
        old_value: StoredValue,
        source: ChangeSource,
        timestamp: SystemTime,
    },
    DeserializeFailure {
        key: String,
        raw: String,
        error: String,
        source: ChangeSource,
        timestamp: SystemTime,
    },
}