diff --git a/shared/grpc_clients/src/error.rs b/shared/grpc_clients/src/error.rs index ea387d89a..deaae195e 100644 --- a/shared/grpc_clients/src/error.rs +++ b/shared/grpc_clients/src/error.rs @@ -1,15 +1,24 @@ -use tonic::{codegen::http::uri::InvalidUri, Status}; +use tonic::{codegen::http::uri::InvalidUri, Code, Status}; #[derive( Debug, derive_more::Display, derive_more::From, derive_more::Error, )] pub enum Error { #[display(fmt = "Transport Error: {:?}", _0)] TransportError(tonic::transport::Error), #[display(fmt = "Invalid Uri: {:?}", _0)] InvalidUri(InvalidUri), #[display(fmt = "Grpc Status: {:?}", _0)] GrpcStatus(Status), #[display(fmt = "Invalid Device Type")] InvalidDeviceType, } + +pub fn unsupported_version() -> Status { + Status::unimplemented("Unsupported version") +} + +pub fn is_version_unsupported(status: Status) -> bool { + status.code() == Code::Unimplemented + && status.message() == "Unsupported version" +}