Mercurial > public > mercurial-scm > hg
view rust/hg-core/src/testing.rs @ 46578:a34cd9aa3323
copies-rust: yield both p1 and p2 copies in `ChangedFiles.actions()`
Instead of filtering the relevant parent inside de ChangedFiles method, we now
yield all copies information and let the caller do the filtering. Soon, the
filtering will be replaced by dispatching.
Differential Revision: https://phab.mercurial-scm.org/D9649
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 21 Dec 2020 10:24:16 +0100 |
parents | 168041fa6d5f |
children | 4c5f6e95df84 |
line wrap: on
line source
// testing.rs // // Copyright 2018 Georges Racinet <georges.racinet@octobus.net> // // This software may be used and distributed according to the terms of the // GNU General Public License version 2 or any later version. use crate::{Graph, GraphError, Revision, NULL_REVISION}; /// A stub `Graph`, same as the one from `test-ancestor.py` /// /// o 13 /// | /// | o 12 /// | | /// | | o 11 /// | | |\ /// | | | | o 10 /// | | | | | /// | o---+ | 9 /// | | | | | /// o | | | | 8 /// / / / / /// | | o | 7 /// | | | | /// o---+ | 6 /// / / / /// | | o 5 /// | |/ /// | o 4 /// | | /// o | 3 /// | | /// | o 2 /// |/ /// o 1 /// | /// o 0 #[derive(Clone, Debug)] pub struct SampleGraph; impl Graph for SampleGraph { fn parents(&self, rev: Revision) -> Result<[Revision; 2], GraphError> { match rev { 0 => Ok([NULL_REVISION, NULL_REVISION]), 1 => Ok([0, NULL_REVISION]), 2 => Ok([1, NULL_REVISION]), 3 => Ok([1, NULL_REVISION]), 4 => Ok([2, NULL_REVISION]), 5 => Ok([4, NULL_REVISION]), 6 => Ok([4, NULL_REVISION]), 7 => Ok([4, NULL_REVISION]), 8 => Ok([NULL_REVISION, NULL_REVISION]), 9 => Ok([6, 7]), 10 => Ok([5, NULL_REVISION]), 11 => Ok([3, 7]), 12 => Ok([9, NULL_REVISION]), 13 => Ok([8, NULL_REVISION]), r => Err(GraphError::ParentOutOfRange(r)), } } } // A Graph represented by a vector whose indices are revisions // and values are parents of the revisions pub type VecGraph = Vec<[Revision; 2]>; impl Graph for VecGraph { fn parents(&self, rev: Revision) -> Result<[Revision; 2], GraphError> { Ok(self[rev as usize]) } }