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