settings/inspect/utils/
enums.rs

1// Copyright 2022 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5use crate::handler::base::Error;
6use crate::handler::setting_handler::ControllerError;
7use settings_common::inspect::event::ResponseType;
8
9impl From<Error> for ResponseType {
10    fn from(error: Error) -> Self {
11        match error {
12            Error::UnimplementedRequest(_setting_type, _request) => {
13                ResponseType::UnimplementedRequest
14            }
15            Error::StorageFailure(_setting_type) => ResponseType::StorageFailure,
16            Error::InitFailure(_cause) => ResponseType::InitFailure,
17            Error::RestoreFailure(_cause) => ResponseType::RestoreFailure,
18            Error::InvalidArgument(_setting_type, _argument, _value) => {
19                ResponseType::InvalidArgument
20            }
21            Error::IncompatibleArguments { .. } => ResponseType::IncompatibleArguments,
22            Error::ExternalFailure(_setting_type, _dependency, _request, _error) => {
23                ResponseType::ExternalFailure
24            }
25            Error::UnhandledType(_setting_type) => ResponseType::UnhandledType,
26            Error::DeliveryError(_setting_type_1, _setting_type_2) => ResponseType::DeliveryError,
27            Error::UnexpectedError(_error) => ResponseType::UnexpectedError,
28            Error::UndeliverableError(_setting_type, _request) => ResponseType::UndeliverableError,
29            Error::UnsupportedError(_setting_type) => ResponseType::UnsupportedError,
30            Error::CommunicationError => ResponseType::CommunicationError,
31            Error::IrrecoverableError => ResponseType::IrrecoverableError,
32            Error::TimeoutError => ResponseType::TimeoutError,
33        }
34    }
35}
36
37impl From<ControllerError> for ResponseType {
38    fn from(error: ControllerError) -> Self {
39        let error = Error::from(error);
40        ResponseType::from(error)
41    }
42}