diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-08-23 13:00:14 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-08-23 13:00:14 +0200 |
commit | d21a523ab459f7a6893e85822d0ef5d4ec795949 (patch) | |
tree | ccd11c284b7f01576b586d5f18798b7c20905255 /crates/bytes/src/error.rs | |
parent | refactor(libmpv2): Move to the `crates` directory (diff) | |
download | yt-d21a523ab459f7a6893e85822d0ef5d4ec795949.tar.gz yt-d21a523ab459f7a6893e85822d0ef5d4ec795949.zip |
feat(crates/bytes): Init
Diffstat (limited to 'crates/bytes/src/error.rs')
-rw-r--r-- | crates/bytes/src/error.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/crates/bytes/src/error.rs b/crates/bytes/src/error.rs new file mode 100644 index 0000000..7643109 --- /dev/null +++ b/crates/bytes/src/error.rs @@ -0,0 +1,38 @@ +// yt - A fully featured command line YouTube client +// +// Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de> +// SPDX-License-Identifier: GPL-3.0-or-later +// +// This file is part of Yt. +// +// You should have received a copy of the License along with this program. +// If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. + +use std::{fmt::Display, num::ParseIntError}; + +#[derive(Debug)] +pub enum BytesError { + BytesParseIntError(ParseIntError), + NotYetSupported(String), +} + +impl Display for BytesError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + BytesError::BytesParseIntError(e) => { + f.write_fmt(format_args!("Failed to parse a number as integer: '{}'", e)) + }, + BytesError::NotYetSupported(other) => { + f.write_fmt(format_args!("Your extension '{}' is not yet supported. Only KB,MB,GB or KiB,MiB,GiB are supported", other)) + } + } + } +} + +impl From<ParseIntError> for BytesError { + fn from(value: ParseIntError) -> Self { + Self::BytesParseIntError(value) + } +} + +impl std::error::Error for BytesError {} |