1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
// Copyright 2020 MaidSafe.net limited. // // This SAFE Network Software is licensed to you under the MIT license <LICENSE-MIT // http://opensource.org/licenses/MIT> or the Modified BSD license <LICENSE-BSD // https://opensource.org/licenses/BSD-3-Clause>, at your option. This file may not be copied, // modified, or distributed except according to those terms. Please review the Licences for the // specific language governing permissions and limitations relating to use of the SAFE Network // Software. //! Implements TreeMeta, a trait for representing Tree (Node) metadata //! //! For usage/examples, see: //! examples/tree.rs //! test/tree.rs //! //! This code aims to be an accurate implementation of the //! tree crdt described in: //! //! "A highly-available move operation for replicated trees //! and distributed filesystems" [1] by Martin Klepmann, et al. //! //! [1] https://martin.kleppmann.com/papers/move-op.pdf //! //! For clarity, data structures in this implementation are named //! the same as in the paper (State, Tree) or close to //! (OpMove --> Move, LogOpMove --> LogOp). Some are not explicitly //! named in the paper, such as TreeId, TreeMeta, TreeNode, Clock. /// TreeMeta trait. TreeMeta are application-defined pieces of data that are stored /// with each node in the Tree. pub trait TreeMeta: Clone {} impl<TM: Clone> TreeMeta for TM {}