Mercurial > public > mercurial-scm > hg-stable
diff rust/hg-core/src/lib.rs @ 42330:e240bec26626
rust-dirstate: add rust-cpython bindings to the new parse/pack functions
This allows for Python code to call `parse/pack_dirstate` transparently.
These bindings are heavy given the relatively simple task, as they are bound
to implementation details of both the C and Python code. They will be slimmed
down in future patches and eventually completely removed once more of the
dirstate code has been refactored/rewritten in Rust.
Both functions emulate the mutate-on-loop style of the Python and C
implementations by looping over changed items in the compatibility layer,
instead of at the core functions.
Differential Revision: https://phab.mercurial-scm.org/D6349
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Mon, 06 May 2019 22:50:34 +0200 |
parents | d1786c1d34fa |
children | e8f3740cc067 |
line wrap: on
line diff
--- a/rust/hg-core/src/lib.rs Mon May 06 22:48:09 2019 +0200 +++ b/rust/hg-core/src/lib.rs Mon May 06 22:50:34 2019 +0200 @@ -8,8 +8,13 @@ mod ancestors; pub mod dagops; pub use ancestors::{AncestorsIterator, LazyAncestors, MissingAncestors}; -pub mod testing; // unconditionally built, for use from integration tests +mod dirstate; pub mod discovery; +pub mod testing; // unconditionally built, for use from integration tests +pub use dirstate::{ + pack_dirstate, parse_dirstate, CopyVec, CopyVecEntry, DirstateEntry, + DirstateParents, DirstateVec, +}; /// Mercurial revision numbers /// @@ -17,7 +22,6 @@ /// 4 bytes, and are liberally converted to ints, whence the i32 pub type Revision = i32; - /// Marker expressing the absence of a parent /// /// Independently of the actual representation, `NULL_REVISION` is guaranteed