libvctrl 0.5.1

A robust, content-addressed version control engine for arbitrary data, designed for embedding into applications.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::domain::hash::Hash;
use crate::error::VctrlError;
use crate::storage::traits::ObjectStore;

pub enum MergeResult {
    Success(Hash),
    Conflict(String),
}

pub trait MergeStrategy {
    fn merge(
        &self,
        store: &mut dyn ObjectStore,
        base: &Hash,
        ours: &Hash,
        theirs: &Hash,
    ) -> Result<MergeResult, VctrlError>;
}