Mercurial > public > mercurial-scm > hg-stable
view rust/hg-core/src/lib.rs @ 40950:18513d6ef7d4
rust: changed Graph.parents to return [Revision; 2]
This will allow for simple iteration on parent revisions,
such as:
for parent in graph.parents(rev)?.iter().cloned()
This seems to be a zero overhead abstraction once built in
release mode.
Differential Revision: https://phab.mercurial-scm.org/D5415
author | Georges Racinet <gracinet@anybox.fr> |
---|---|
date | Fri, 30 Nov 2018 00:44:04 +0100 |
parents | dbc28c91f7ff |
children | d097dd0afc19 |
line wrap: on
line source
// Copyright 2018 Georges Racinet <gracinet@anybox.fr> // // This software may be used and distributed according to the terms of the // GNU General Public License version 2 or any later version. mod ancestors; pub use ancestors::AncestorsIterator; /// Mercurial revision numbers /// /// As noted in revlog.c, revision numbers are actually encoded in /// 4 bytes, and are liberally converted to ints, whence the i32 pub type Revision = i32; pub const NULL_REVISION: Revision = -1; /// The simplest expression of what we need of Mercurial DAGs. pub trait Graph { fn parents(&self, Revision) -> Result<[Revision; 2], GraphError>; } #[derive(Clone, Debug, PartialEq)] pub enum GraphError { ParentOutOfRange(Revision), }