Mercurial > hg
view 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 |
line wrap: on
line source
[package] name = "hg-cpython" version = "0.1.0" authors = ["Georges Racinet <gracinet@anybox.fr>"] edition = "2018" [lib] name='rusthg' crate-type = ["cdylib"] [features] default = ["python27"] # Features to build an extension module: python27 = ["cpython/python27-sys", "cpython/extension-module-2-7"] python3 = ["cpython/python3-sys", "cpython/extension-module"] # Enable one of these features to build a test executable linked to libpython: # e.g. cargo test --no-default-features --features python27-bin python27-bin = ["cpython/python27-sys"] python3-bin = ["cpython/python3-sys"] [dependencies] crossbeam-channel = "0.4" hg-core = { path = "../hg-core"} libc = '*' log = "0.4.8" env_logger = "0.7.1" stable_deref_trait = "1.2.0" [dependencies.cpython] version = "0.6.0" default-features = false