deepmerge 0.1.0

Deep merge functionality with policy-driven merging and derive macro support
Documentation
//! Prelude module for convenient imports
//!
//! The prelude provides all commonly used items from the deepmerge crate in a single import.
//!
//! # Usage
//!
//! ```rust
//! use deepmerge::prelude::*;
//!
//! #[derive(DeepMerge)]
//! #[merge(policy(sequence = append, string = concat))]
//! struct Config {
//!     name: String,
//!     items: Vec<String>,
//! }
//!
//! let mut config = Config {
//!     name: "My App".to_string(),
//!     items: vec!["item1".to_string()],
//! };
//!
//! let update = Config {
//!     name: " v2".to_string(),
//!     items: vec!["item2".to_string()],
//! };
//!
//! config.merge(update);
//! assert_eq!(config.name, "My App v2");
//! assert_eq!(config.items, vec!["item1", "item2"]);
//! ```
//!
//! # Version Stability
//!
//! For maximum compatibility, you can import from a specific version:
//!
//! ```rust
//! use deepmerge::prelude::v1::*;
//! ```

#![allow(unused_imports)]

/// Version 1 of the prelude - includes all commonly used items
pub mod v1 {
    // Core traits and derive macro (DeepMerge is both trait and macro)
    pub use crate::{
        DeepMerge, DeepMergeDefault, DeepMergeFrom, DeepMergeFromDefault,
    };
    
    // Policy types
    pub use crate::{
        Policy, DefaultPolicy, ComposedPolicy, PreservePolicy, StrictReplacePolicy, DedupeCollectionsPolicy
    };
    
    // Policy configuration enums
    pub use crate::{
        ScalarAction, SequenceMerge, MapMerge, OptionMerge, NumberMerge, 
        BoolMerge, StringMerge, Condition, MergeOutcome,
    };
    
    // Convenience functions
    pub use crate::{
        deep_merge, deep_merge_with_policy,
        deep_merge_ref, deep_merge_ref_with_policy,
        merged, merged_with_policy,
        deep_merge_reporting, deep_merge_with_policy_reporting,
        deep_merge_from, deep_merge_from_with_policy,
        deep_merge_from_reporting, deep_merge_from_with_policy_reporting,
    };
}

// Re-export v1 as the default prelude
pub use v1::*;