##// END OF EJS Templates
rust: working directory revision number constant...
Georges Racinet -
r41384:2f54f31c stable
parent child Browse files
Show More
@@ -1,30 +1,36 b''
1 // Copyright 2018 Georges Racinet <gracinet@anybox.fr>
1 // Copyright 2018 Georges Racinet <gracinet@anybox.fr>
2 //
2 //
3 // This software may be used and distributed according to the terms of the
3 // This software may be used and distributed according to the terms of the
4 // GNU General Public License version 2 or any later version.
4 // GNU General Public License version 2 or any later version.
5 mod ancestors;
5 mod ancestors;
6 pub mod dagops;
6 pub mod dagops;
7 pub use ancestors::{AncestorsIterator, LazyAncestors, MissingAncestors};
7 pub use ancestors::{AncestorsIterator, LazyAncestors, MissingAncestors};
8 #[cfg(test)]
8 #[cfg(test)]
9 pub mod testing;
9 pub mod testing;
10
10
11 /// Mercurial revision numbers
11 /// Mercurial revision numbers
12 ///
12 ///
13 /// As noted in revlog.c, revision numbers are actually encoded in
13 /// As noted in revlog.c, revision numbers are actually encoded in
14 /// 4 bytes, and are liberally converted to ints, whence the i32
14 /// 4 bytes, and are liberally converted to ints, whence the i32
15 pub type Revision = i32;
15 pub type Revision = i32;
16
16
17 pub const NULL_REVISION: Revision = -1;
17 pub const NULL_REVISION: Revision = -1;
18
18
19 /// Same as `mercurial.node.wdirrev`
20 ///
21 /// This is also equal to `i32::max_value()`, but it's better to spell
22 /// it out explicitely, same as in `mercurial.node`
23 pub const WORKING_DIRECTORY_REVISION: Revision = 0x7fffffff;
24
19 /// The simplest expression of what we need of Mercurial DAGs.
25 /// The simplest expression of what we need of Mercurial DAGs.
20 pub trait Graph {
26 pub trait Graph {
21 /// Return the two parents of the given `Revision`.
27 /// Return the two parents of the given `Revision`.
22 ///
28 ///
23 /// Each of the parents can be independently `NULL_REVISION`
29 /// Each of the parents can be independently `NULL_REVISION`
24 fn parents(&self, Revision) -> Result<[Revision; 2], GraphError>;
30 fn parents(&self, Revision) -> Result<[Revision; 2], GraphError>;
25 }
31 }
26
32
27 #[derive(Clone, Debug, PartialEq)]
33 #[derive(Clone, Debug, PartialEq)]
28 pub enum GraphError {
34 pub enum GraphError {
29 ParentOutOfRange(Revision),
35 ParentOutOfRange(Revision),
30 }
36 }
General Comments 0
You need to be logged in to leave comments. Login now