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 }