auv-api-server 0.0.22

Protocol adapters for AUV daemon control and capability APIs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//! Shared translation from server-domain failures to gRPC status codes.

use tonic::Status;

pub(crate) fn map_control_error(error: crate::control::ControlError) -> Status {
  use crate::control::ControlError as DaemonError;
  match error {
    DaemonError::Identity(_) => Status::internal(error.to_string()),
    DaemonError::InvalidArgument(_) | DaemonError::UnknownDevice(_) => Status::invalid_argument(error.to_string()),
    DaemonError::UnknownRun(_) | DaemonError::UnknownRunner(_) => Status::not_found(error.to_string()),
    DaemonError::RunnerProviderUnavailable(_) => Status::unimplemented(error.to_string()),
    DaemonError::RunnerOperation(_) => Status::unavailable(error.to_string()),
  }
}