Trait Merge

Source
pub trait Merge {
    // Required method
    fn merge(&mut self, template: &Self);
}
Expand description

Combine a type with a template of what values to use when they’re unspecified in the self instance. On containers like maps, this will recursively call merge for elements that have the same key.

Required Methods§

Source

fn merge(&mut self, template: &Self)

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Merge for bool

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for char

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for f32

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for f64

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for i8

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for i16

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for i32

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for i64

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for i128

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for isize

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for u8

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for u16

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for u32

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for u64

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for u128

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for ()

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for usize

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for String

Source§

fn merge(&mut self, _template: &Self)

Source§

impl Merge for Duration

Source§

fn merge(&mut self, _template: &Self)

Source§

impl<A> Merge for (A,)
where A: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B> Merge for (A, B)
where A: Merge, B: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C> Merge for (A, B, C)
where A: Merge, B: Merge, C: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D> Merge for (A, B, C, D)
where A: Merge, B: Merge, C: Merge, D: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E> Merge for (A, B, C, D, E)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E, F> Merge for (A, B, C, D, E, F)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge, F: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E, F, G> Merge for (A, B, C, D, E, F, G)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge, F: Merge, G: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E, F, G, H> Merge for (A, B, C, D, E, F, G, H)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge, F: Merge, G: Merge, H: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E, F, G, H, I> Merge for (A, B, C, D, E, F, G, H, I)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge, F: Merge, G: Merge, H: Merge, I: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E, F, G, H, I, J> Merge for (A, B, C, D, E, F, G, H, I, J)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge, F: Merge, G: Merge, H: Merge, I: Merge, J: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K> Merge for (A, B, C, D, E, F, G, H, I, J, K)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge, F: Merge, G: Merge, H: Merge, I: Merge, J: Merge, K: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> Merge for (A, B, C, D, E, F, G, H, I, J, K, L)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge, F: Merge, G: Merge, H: Merge, I: Merge, J: Merge, K: Merge, L: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M> Merge for (A, B, C, D, E, F, G, H, I, J, K, L, M)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge, F: Merge, G: Merge, H: Merge, I: Merge, J: Merge, K: Merge, L: Merge, M: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N> Merge for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge, F: Merge, G: Merge, H: Merge, I: Merge, J: Merge, K: Merge, L: Merge, M: Merge, N: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> Merge for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge, F: Merge, G: Merge, H: Merge, I: Merge, J: Merge, K: Merge, L: Merge, M: Merge, N: Merge, O: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> Merge for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)
where A: Merge, B: Merge, C: Merge, D: Merge, E: Merge, F: Merge, G: Merge, H: Merge, I: Merge, J: Merge, K: Merge, L: Merge, M: Merge, N: Merge, O: Merge, P: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<K, V> Merge for BTreeMap<K, V>
where K: Ord, V: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<K, V> Merge for HashMap<K, V>
where K: Eq + Hash, V: Merge,

Source§

fn merge(&mut self, template: &Self)

Source§

impl<T> Merge for Option<T>
where T: Merge + Clone,

Source§

fn merge(&mut self, template: &Self)

Implementors§