[PATCH 2 of 3 STABLE] rust: error for WdirUnsupported with cpython conversion as exception

Yuya Nishihara yuya at tcha.org
Fri Jan 25 03:44:01 EST 2019


On Wed, 23 Jan 2019 23:23:52 -0500, Georges Racinet wrote:
> # HG changeset patch
> # User Georges Racinet <georges.racinet at octobus.net>
> # Date 1548247624 18000
> #      Wed Jan 23 07:47:04 2019 -0500
> # Branch stable
> # Node ID a35cfd592a90ae325b452c56fe8bff86cac097dd
> # Parent  56b74abf5ee6df48ec2debf1f004725cfcc93854
> # EXP-Topic rust-wdirunsupported
> rust: error for WdirUnsupported with cpython conversion as exception

> @@ -22,6 +24,15 @@
>              hg::GraphError::ParentOutOfRange(r) => {
>                  GraphError::new(py, ("ParentOutOfRange", r))
>              }
> +            hg::GraphError::WorkingDirectoryUnsupported => {
> +                match py
> +                    .import("mercurial.error")
> +                    .and_then(|m| m.get(py, "WdirUnsupported"))
> +                {
> +                    Err(e) => e,
> +                    Ok(cls) => PyErr::from_instance(py, cls),
> +                }

Can be spelled as .map(|cls| ...).unwrap_or_else(|e| e) if you prefer
method chain.


More information about the Mercurial-devel mailing list