datafusion_tui/app/
error.rs

1// Licensed to the Apache Software Foundation (ASF) under one
2// or more contributor license agreements.  See the NOTICE file
3// distributed with this work for additional information
4// regarding copyright ownership.  The ASF licenses this file
5// to you under the Apache License, Version 2.0 (the
6// "License"); you may not use this file except in compliance
7// with the License.  You may obtain a copy of the License at
8//
9//   http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing,
12// software distributed under the License is distributed on an
13// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14// KIND, either express or implied.  See the License for the
15// specific language governing permissions and limitations
16// under the License.
17
18use datafusion::error::DataFusionError;
19use std::error;
20use std::fmt::{Display, Formatter};
21use std::io;
22use std::result;
23
24pub type Result<T> = result::Result<T, DftError>;
25
26#[derive(Debug)]
27pub enum DftError {
28    DataFusionError(DataFusionError),
29    IoError(io::Error),
30    UiError(String),
31}
32
33impl From<io::Error> for DftError {
34    fn from(e: io::Error) -> Self {
35        DftError::IoError(e)
36    }
37}
38
39impl From<DataFusionError> for DftError {
40    fn from(e: DataFusionError) -> Self {
41        DftError::DataFusionError(e)
42    }
43}
44
45impl Display for DftError {
46    fn fmt(&self, f: &mut Formatter) -> std::fmt::Result {
47        match *self {
48            DftError::DataFusionError(ref desc) => write!(f, "DataFusion error: {}", desc),
49            DftError::IoError(ref desc) => write!(f, "IO error: {}", desc),
50            DftError::UiError(ref text) => write!(f, "UI Error: {}", text),
51        }
52    }
53}
54
55impl error::Error for DftError {}