From b7e3ea67500820f5d69d069aa64a56804cfd2889 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 9 Feb 2025 22:50:07 +0000 Subject: [PATCH] feat: remove derive feature from arbitrary support --- Cargo.lock | 14 -------------- Cargo.toml | 2 +- src/arbitrary.rs | 13 +++++++++++++ src/lib.rs | 3 ++- 4 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 src/arbitrary.rs diff --git a/Cargo.lock b/Cargo.lock index 5c3c438..31cadb9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,9 +7,6 @@ name = "arbitrary" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" -dependencies = [ - "derive_arbitrary", -] [[package]] name = "bytesize" @@ -21,17 +18,6 @@ dependencies = [ "toml", ] -[[package]] -name = "derive_arbitrary" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "equivalent" version = "1.0.1" diff --git a/Cargo.toml b/Cargo.toml index fc54e5e..a03e345 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ arbitrary = ["dep:arbitrary"] serde = ["dep:serde"] [dependencies] -arbitrary = { version = "1", features = ["derive"], optional = true } +arbitrary = { version = "1", optional = true } serde = { version = "1", optional = true } [dev-dependencies] diff --git a/src/arbitrary.rs b/src/arbitrary.rs new file mode 100644 index 0000000..54b4e38 --- /dev/null +++ b/src/arbitrary.rs @@ -0,0 +1,13 @@ +use arbitrary::{Arbitrary, Unstructured}; + +use crate::ByteSize; + +impl Arbitrary<'_> for ByteSize { + fn arbitrary(u: &mut Unstructured<'_>) -> arbitrary::Result { + Ok(ByteSize(u64::arbitrary(u)?)) + } + + fn size_hint(depth: usize) -> (usize, Option) { + u64::size_hint(depth) + } +} diff --git a/src/lib.rs b/src/lib.rs index 4395007..e87e59a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -27,6 +27,8 @@ //! assert_eq!("518.0 GB", ByteSize::gb(518).to_string_as(false)); //! ``` +#[cfg(feature = "arbitrary")] +mod arbitrary; mod parse; #[cfg(feature = "serde")] mod serde; @@ -105,7 +107,6 @@ pub fn pib>(size: V) -> u64 { /// Byte size representation #[derive(Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash, Default)] -#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ByteSize(pub u64); impl ByteSize {