xref: /aosp_15_r20/external/crosvm/devices/src/utils/error.rs (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker // Copyright 2018 The ChromiumOS Authors
2*bb4ee6a4SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*bb4ee6a4SAndroid Build Coastguard Worker // found in the LICENSE file.
4*bb4ee6a4SAndroid Build Coastguard Worker 
5*bb4ee6a4SAndroid Build Coastguard Worker use base::Error as SysError;
6*bb4ee6a4SAndroid Build Coastguard Worker use remain::sorted;
7*bb4ee6a4SAndroid Build Coastguard Worker use thiserror::Error;
8*bb4ee6a4SAndroid Build Coastguard Worker 
9*bb4ee6a4SAndroid Build Coastguard Worker #[sorted]
10*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Error, Debug)]
11*bb4ee6a4SAndroid Build Coastguard Worker pub enum Error {
12*bb4ee6a4SAndroid Build Coastguard Worker     #[error("failed to create event: {0}")]
13*bb4ee6a4SAndroid Build Coastguard Worker     CreateEvent(SysError),
14*bb4ee6a4SAndroid Build Coastguard Worker     #[error("failed to create poll context: {0}")]
15*bb4ee6a4SAndroid Build Coastguard Worker     CreateWaitContext(SysError),
16*bb4ee6a4SAndroid Build Coastguard Worker     #[error("event loop already failed due to previous errors")]
17*bb4ee6a4SAndroid Build Coastguard Worker     EventLoopAlreadyFailed,
18*bb4ee6a4SAndroid Build Coastguard Worker     #[error("attempted to resume polling descriptor without handler")]
19*bb4ee6a4SAndroid Build Coastguard Worker     EventLoopMissingHandler,
20*bb4ee6a4SAndroid Build Coastguard Worker     #[error("failed to read event: {0}")]
21*bb4ee6a4SAndroid Build Coastguard Worker     ReadEvent(SysError),
22*bb4ee6a4SAndroid Build Coastguard Worker     #[error("failed to start thread: {0}")]
23*bb4ee6a4SAndroid Build Coastguard Worker     StartThread(std::io::Error),
24*bb4ee6a4SAndroid Build Coastguard Worker     #[error("failed to add fd to poll context: {0}")]
25*bb4ee6a4SAndroid Build Coastguard Worker     WaitContextAddDescriptor(SysError),
26*bb4ee6a4SAndroid Build Coastguard Worker     #[error("failed to delete fd from poll context: {0}")]
27*bb4ee6a4SAndroid Build Coastguard Worker     WaitContextDeleteDescriptor(SysError),
28*bb4ee6a4SAndroid Build Coastguard Worker     #[error("failed to write event: {0}")]
29*bb4ee6a4SAndroid Build Coastguard Worker     WriteEvent(SysError),
30*bb4ee6a4SAndroid Build Coastguard Worker }
31*bb4ee6a4SAndroid Build Coastguard Worker 
32*bb4ee6a4SAndroid Build Coastguard Worker pub type Result<T> = std::result::Result<T, Error>;
33