Mercurial > public > mercurial-scm > hg
comparison rust/hg-cpython/src/exceptions.rs @ 40965:5532823e8c18
rust-cpython: start cpython crate bindings
This changeset introduces the hg-cpython crate,
that compiles as a shared library holding a whole
Python package (mercurial.rustext), with only the empty
'ancestor' submodule for now.
Such bindings will be easier and safer to develop and maintain
that those of `hg-direct-ffi`.
They don't involve C code, only unsafe Rust that's mostly isolated
within the cpython crate.
The long-term goal would be to import the provided modules, such
as rustext.ancestor with mercurial.policy.importmod, same as
we already do with cext modules.
Differential Revision: https://phab.mercurial-scm.org/D5434
author | Georges Racinet <gracinet@anybox.fr> |
---|---|
date | Mon, 03 Dec 2018 06:52:17 +0100 |
parents | |
children | dcf818267bc1 |
comparison
equal
deleted
inserted
replaced
40964:98a0fbda8739 | 40965:5532823e8c18 |
---|---|
1 use cpython::exc::ValueError; | |
2 use cpython::{PyErr, Python}; | |
3 use hg; | |
4 | |
5 py_exception!(rustext, GraphError, ValueError); | |
6 | |
7 impl GraphError { | |
8 pub fn pynew(py: Python, inner: hg::GraphError) -> PyErr { | |
9 match inner { | |
10 hg::GraphError::ParentOutOfRange(r) => { | |
11 GraphError::new(py, ("ParentOutOfRange", r)) | |
12 } | |
13 } | |
14 } | |
15 } |