blob: 910dc8156da4ca1ffa44274205318341835aa08d [file]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
use failure::Fail;
use fidl_fuchsia_pkg_ext::BlobIdParseError;
use serde_json;
#[derive(Debug, Fail)]
pub enum Error {
#[fail(display = "{}", _0)]
Help(&'static str),
#[fail(display = "missing argument {}", _0)]
MissingArgument(&'static str),
#[fail(display = "unrecognized argument {}", _0)]
UnrecognizedArgument(String),
#[fail(display = "missing subcommand")]
MissingCommand,
#[fail(display = "{}", _0)]
Json(#[cause] serde_json::Error),
#[fail(display = "{}", _0)]
BlobId(#[cause] BlobIdParseError),
}
impl From<serde_json::Error> for Error {
fn from(err: serde_json::Error) -> Error {
Error::Json(err)
}
}
impl From<BlobIdParseError> for Error {
fn from(err: BlobIdParseError) -> Error {
Error::BlobId(err)
}
}