From d21a523ab459f7a6893e85822d0ef5d4ec795949 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Fri, 23 Aug 2024 13:00:14 +0200 Subject: feat(crates/bytes): Init --- crates/bytes/src/error.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 crates/bytes/src/error.rs (limited to 'crates/bytes/src/error.rs') 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 +// 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 . + +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 for BytesError { + fn from(value: ParseIntError) -> Self { + Self::BytesParseIntError(value) + } +} + +impl std::error::Error for BytesError {} -- cgit 1.4.1