Mercurial > public > mercurial-scm > hg-stable
changeset 52794:918239b55b3a
rust-pyo3-revlog: converting NodeMapError to Python ValueError
author | Georges Racinet <georges.racinet@cloudcrane.io> |
---|---|
date | Wed, 25 Dec 2024 13:37:26 +0100 |
parents | 42b219a1404a |
children | 827889802d11 |
files | rust/hg-pyo3/src/exceptions.rs |
diffstat | 1 files changed, 19 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/rust/hg-pyo3/src/exceptions.rs Wed Dec 25 13:29:56 2024 +0100 +++ b/rust/hg-pyo3/src/exceptions.rs Wed Dec 25 13:37:26 2024 +0100 @@ -2,6 +2,8 @@ use pyo3::import_exception; use pyo3::{create_exception, PyErr}; +use hg::revlog::nodemap::NodeMapError; + use crate::revision::PyRevision; create_exception!(pyo3_rustext, GraphError, PyValueError); @@ -51,3 +53,20 @@ pub fn revlog_error_from_msg(e: impl ToString) -> PyErr { mercurial_py_errors::RevlogError::new_err(e.to_string().into_bytes()) } + +#[allow(dead_code)] +pub fn nodemap_error(err: NodeMapError) -> PyErr { + match err { + NodeMapError::MultipleResults => { + mercurial_py_errors::RevlogError::new_err("") + } + + NodeMapError::RevisionNotInIndex(rev) => { + PyValueError::new_err(format!( + "Inconsistency: Revision {} found in nodemap \ + is not in revlog index", + rev + )) + } + } +}