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
+            ))
+        }
+    }
+}