Mercurial > hg
comparison rust/hg-cpython/Cargo.toml @ 47954:4afd6cc447b9
rust: Make OwningDirstateMap generic and move it into hg-core
This will enable using it in rhg too.
The `OwningDirstateMap::new_empty` constructor is generic and accepts a value
of any type that gives acces to a bytes buffer. That buffer must stay valid
as long as the value hasn’t been dropped, and must keep its memory address
even if the value is moved. The `StableDeref` marker trait encodes those
constraints. Previously no trait was needed because the value was always
of type `PyBytes` which we know satisfies those constraints.
The buffer type is ereased in the struct itself through boxing and
dynamic dispatch, in order to simplify other signatures that mention
`OwningDirstateMap`.
Differential Revision: https://phab.mercurial-scm.org/D11396
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Thu, 09 Sep 2021 18:07:40 +0200 |
parents | 5decb7a49bb6 |
children | 01c3dd208c75 |
comparison
equal
deleted
inserted
replaced
47953:8f031a274cd6 | 47954:4afd6cc447b9 |
---|---|
24 crossbeam-channel = "0.4" | 24 crossbeam-channel = "0.4" |
25 hg-core = { path = "../hg-core"} | 25 hg-core = { path = "../hg-core"} |
26 libc = '*' | 26 libc = '*' |
27 log = "0.4.8" | 27 log = "0.4.8" |
28 env_logger = "0.7.1" | 28 env_logger = "0.7.1" |
29 stable_deref_trait = "1.2.0" | |
29 | 30 |
30 [dependencies.cpython] | 31 [dependencies.cpython] |
31 version = "0.6.0" | 32 version = "0.6.0" |
32 default-features = false | 33 default-features = false |