From cbecbcf58fb2abba34dd34eea81531ae5b32f5e9 Mon Sep 17 00:00:00 2001 From: FL33TW00D Date: Tue, 14 May 2024 09:51:08 +0100 Subject: [PATCH 1/2] chore: arb --- Cargo.lock | 21 +++++++++++++++++++++ Cargo.toml | 4 +++- src/binary16.rs | 3 +++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 273dfa3..31a9df1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -28,6 +28,15 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +dependencies = [ + "derive_arbitrary", +] + [[package]] name = "atty" version = "0.2.14" @@ -250,6 +259,17 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +[[package]] +name = "derive_arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.50", +] + [[package]] name = "either" version = "1.10.0" @@ -297,6 +317,7 @@ dependencies = [ name = "half" version = "2.4.1" dependencies = [ + "arbitrary", "bytemuck", "cfg-if", "criterion", diff --git a/Cargo.toml b/Cargo.toml index fab7642..f8b7d06 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,11 +14,12 @@ rust-version = "1.70" exclude = [".git*", ".editorconfig", ".circleci"] [features] -default = ["std"] +default = ["std", "arbitrary"] std = ["alloc"] use-intrinsics = [] # Deprecated alloc = [] rand_distr = ["dep:rand", "dep:rand_distr"] +arbitrary = ["dep:arbitrary"] [dependencies] cfg-if = "1.0.0" @@ -35,6 +36,7 @@ zerocopy = { version = "0.6.0", default-features = false, optional = true } rand = { version = "0.8.5", default-features = false, optional = true } rand_distr = { version = "0.4.3", default-features = false, optional = true } rkyv = { version = "0.7", optional = true } +arbitrary = { version = "1.3.2", features = ["derive"], optional = true } [target.'cfg(target_arch = "spirv")'.dependencies] crunchy = "0.2.2" diff --git a/src/binary16.rs b/src/binary16.rs index 5a23bd6..d1cf648 100644 --- a/src/binary16.rs +++ b/src/binary16.rs @@ -1,6 +1,8 @@ #[cfg(all(feature = "serde", feature = "alloc"))] #[allow(unused_imports)] use alloc::string::ToString; +#[cfg(feature = "arbitrary")] +use arbitrary::Arbitrary; #[cfg(feature = "bytemuck")] use bytemuck::{Pod, Zeroable}; use core::{ @@ -43,6 +45,7 @@ pub(crate) mod arch; #[cfg_attr(feature = "bytemuck", derive(Zeroable, Pod))] #[cfg_attr(feature = "zerocopy", derive(AsBytes, FromBytes))] #[cfg_attr(kani, derive(kani::Arbitrary))] +#[cfg_attr(feature = "arbitrary", derive(Arbitrary))] pub struct f16(u16); impl f16 { From 6bc4bea632269b53ccb6666a8508edc25fba9f3e Mon Sep 17 00:00:00 2001 From: FL33TW00D Date: Wed, 15 May 2024 12:11:54 +0100 Subject: [PATCH 2/2] chore: better --- Cargo.toml | 2 +- src/binary16.rs | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f8b7d06..8ac9a9c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ rust-version = "1.70" exclude = [".git*", ".editorconfig", ".circleci"] [features] -default = ["std", "arbitrary"] +default = ["std"] std = ["alloc"] use-intrinsics = [] # Deprecated alloc = [] diff --git a/src/binary16.rs b/src/binary16.rs index d1cf648..1f88864 100644 --- a/src/binary16.rs +++ b/src/binary16.rs @@ -1,8 +1,6 @@ #[cfg(all(feature = "serde", feature = "alloc"))] #[allow(unused_imports)] use alloc::string::ToString; -#[cfg(feature = "arbitrary")] -use arbitrary::Arbitrary; #[cfg(feature = "bytemuck")] use bytemuck::{Pod, Zeroable}; use core::{ @@ -45,7 +43,7 @@ pub(crate) mod arch; #[cfg_attr(feature = "bytemuck", derive(Zeroable, Pod))] #[cfg_attr(feature = "zerocopy", derive(AsBytes, FromBytes))] #[cfg_attr(kani, derive(kani::Arbitrary))] -#[cfg_attr(feature = "arbitrary", derive(Arbitrary))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct f16(u16); impl f16 {