diff --git a/Cargo.lock b/Cargo.lock index 711a6c373d67003e7070a7432318f594d3c0cef4..cc8ec44f871672cb0bf73069ed50f6865116eae2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -239,8 +239,8 @@ dependencies = [ [[package]] name = "rustmex" -version = "0.6.4" -source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41" +version = "0.6.3" +source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1" dependencies = [ "cfg-if", "more-asserts", @@ -256,7 +256,7 @@ dependencies = [ [[package]] name = "rustmex-entrypoint" version = "0.4.2" -source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41" +source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1" dependencies = [ "quote", "syn 1.0.109", @@ -265,7 +265,7 @@ dependencies = [ [[package]] name = "rustmex_core" version = "0.3.0" -source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41" +source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1" dependencies = [ "num-complex", ] @@ -273,7 +273,7 @@ dependencies = [ [[package]] name = "rustmex_interleaved_complex" version = "0.2.0" -source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41" +source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1" dependencies = [ "ndarray", "num-complex", @@ -283,7 +283,7 @@ dependencies = [ [[package]] name = "rustmex_matlab800" version = "0.1.2" -source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41" +source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1" dependencies = [ "num-complex", "rustmex_core", @@ -292,7 +292,7 @@ dependencies = [ [[package]] name = "rustmex_separated_complex" version = "0.2.0" -source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=243a4c8e73303f578985059ea7005c73f31d1e41#243a4c8e73303f578985059ea7005c73f31d1e41" +source = "git+ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git?rev=9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1#9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1" dependencies = [ "ndarray", "num-complex", diff --git a/Cargo.toml b/Cargo.toml index 5895baf817cf34bde93fc1d6146e384d98e13854..9d291184c4c6bea508d951671f0a85f4595c1b00 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ thiserror = "1" [dependencies.rustmex] git = "ssh://git@git.skywarder.eu/avn/swd/third-party/rustmex.git" -rev = "243a4c8e73303f578985059ea7005c73f31d1e41" +rev = "9f78d0e320b5b2ca30b1504ccf06ec42b52c85e1" # For more information on how to use SSH with Cargo, see: # https://doc.rust-lang.org/cargo/appendix/git-authentication.html#ssh-authentication # https://stackoverflow.com/questions/31704573/is-it-possible-to-have-cargo-fetch-dependencies-from-a-private-remote-git diff --git a/src/error.rs b/src/error.rs index 10300ca4ffe9e9b7cc6fdc65a4b3db291ee41073..c56a64ff55b51e2e7c51c95634901201304ab2ac 100644 --- a/src/error.rs +++ b/src/error.rs @@ -98,9 +98,9 @@ pub enum Error { #[error("Parse error")] Parse, #[error("Matlab error: {0}")] - Matlab(#[from] rustmex::FromMatlabError<MxArray>), + Matlab(rustmex::FromMatlabError<MxArray>), #[error("{0}")] - Rustmex(#[from] rustmex::Error), + Rustmex(String), #[error("Return type cannot be assigned")] ReturnType, #[error("Serial port is not open")] @@ -133,7 +133,7 @@ impl Error { Error::Channel(_) => "serialbridge:channel_error", Error::Parse => "serialbridge:parse_error", Error::Matlab(_) => "serialbridge:matlab_error", - Error::Rustmex(err) => err.id(), + Error::Rustmex(s) => s.split('&').next().unwrap_or("serialbridge:rustmex_error"), Error::ReturnType => "serialbridge:invalid_output", Error::SerialNotOpen => "serialbridge:serial_error", } @@ -155,3 +155,11 @@ impl From<FromMatlabError<&mxArray>> for Error { err.into() } } + +impl From<rustmex::Error> for Error { + fn from(err: rustmex::Error) -> Self { + let id = err.id().to_owned(); + let msg = err.to_string(); + Error::Rustmex(format!("{}&{}", id, msg)) + } +}