##// END OF EJS Templates
rust-node: handling binary Node prefix...
rust-node: handling binary Node prefix Parallel to the inner signatures of the nodetree functions in revlog.c, we'll have to handle prefixes of `Node` in binary form. Another motivation is that it allows to convert from full Node references to `NodePrefixRef` without copy. This is expected to be by far the most common case in practice. There's a slight complication due to the fact that we'll be sometimes interested in prefixes with an odd number of hexadecimal digits, which translates in binary form by a last byte in which only the highest weight 4 bits are considered. This is totally transparent for callers and could be revised once we have proper means to measure performance. The C implementation does the same, passing the length in nybbles as function arguments. Because Rust byte slices already have a length, we carry the even/odd informaton as a boolean, to avoid introducing logical redundancies and the related potential inconsistency bugs. There are a few candidates for inlining here, but we refrain from such premature optimizations, letting the compiler decide. Differential Revision: https://phab.mercurial-scm.org/D7790

File last commit:

r44618:161958eb default
r44643:9896a8d0 default
Show More
Cargo.toml
20 lines | 401 B | application/toml | TOMLLexer
Georges Racinet
rust: pure Rust lazyancestors iterator...
r40307 [package]
name = "hg-core"
version = "0.1.0"
authors = ["Georges Racinet <gracinet@anybox.fr>"]
description = "Mercurial pure Rust core library, with no assumption on Python bindings (FFI)"
Raphaël Gomès
rust: switch hg-core and hg-cpython to rust 2018 edition...
r42828 edition = "2018"
Georges Racinet
rust: pure Rust lazyancestors iterator...
r40307
[lib]
name = "hg"
Georges Racinet
rust: translated random test of missingancestors...
r41841
Raphaël Gomès
rust-dirstate: add rust implementation of `parse_dirstate` and `pack_dirstate`...
r42488 [dependencies]
Raphaël Gomès
rust-filepatterns: add a Rust implementation of pattern-related utils...
r42514 byteorder = "1.3.1"
Georges Racinet
rust-node: binary Node ID and conversion utilities...
r44601 hex = "0.4.0"
Raphaël Gomès
rust-filepatterns: add a Rust implementation of pattern-related utils...
r42514 lazy_static = "1.3.0"
Augie Fackler
rust: sort dependencies entries in Cargo.toml...
r42518 memchr = "2.2.0"
Raphaël Gomès
rust-dependencies: pin the dependencies of hg-core to prevent breakage...
r43530 rand = "0.6.5"
rand_pcg = "0.1.1"
Raphaël Gomès
rust-dependencies: update rayon...
r44618 rayon = "1.3.0"
Raphaël Gomès
rust-dependencies: pin the dependencies of hg-core to prevent breakage...
r43530 regex = "1.1.0"
Raphaël Gomès
rust-performance: introduce FastHashMap type alias for HashMap...
r44278 twox-hash = "1.5.0"