diff options
Diffstat (limited to '')
-rw-r--r-- | crates/bytes/src/lib.rs | 2 | ||||
-rw-r--r-- | crates/bytes/src/serde.rs | 19 |
2 files changed, 21 insertions, 0 deletions
diff --git a/crates/bytes/src/lib.rs b/crates/bytes/src/lib.rs index f80b864..9814a4a 100644 --- a/crates/bytes/src/lib.rs +++ b/crates/bytes/src/lib.rs @@ -26,6 +26,8 @@ const GB: u64 = 1000 * MB; const TB: u64 = 1000 * GB; pub mod error; +#[cfg(feature = "serde")] +pub mod serde; #[derive(Clone, Copy)] pub struct Bytes(u64); diff --git a/crates/bytes/src/serde.rs b/crates/bytes/src/serde.rs new file mode 100644 index 0000000..4341e32 --- /dev/null +++ b/crates/bytes/src/serde.rs @@ -0,0 +1,19 @@ +// 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 serde::{Serialize, Serializer}; + +use crate::Bytes; + +impl Serialize for Bytes { + fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> { + serializer.serialize_str(self.to_string().as_str()) + } +} |