Description: add feature gates to tests for no-default-features compatibility
 The crate fails to build when tested with --no-default-features despite
 advertising no_std support. This patch adds conditional compilation to
 tests that require std and rand features, allowing minimal feature builds
 to succeed by skipping incompatible tests rather than failing compilation
Author: Nadzeya Hutsko <nadzya.info@gmail.com>
Bug: https://github.com/kurtlawrence/guid-create/issues/25
Last-Update: 2025-11-07
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -372,7 +372,7 @@
 #[cfg(feature = "serde")]
 use serde::{de, Deserialize, Deserializer, Serialize, Serializer};
 
-#[cfg(feature = "serde")]
+#[cfg(all(feature = "serde", feature = "std"))]
 impl<'de> Deserialize<'de> for GUID {
     fn deserialize<D>(deserializer: D) -> Result<GUID, D::Error>
     where
@@ -385,7 +385,7 @@
     }
 }
 
-#[cfg(feature = "serde")]
+#[cfg(all(feature = "serde", feature = "std"))]
 impl Serialize for GUID {
     fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
         serializer.serialize_str(&*self.to_string())
@@ -424,7 +424,7 @@
     fn travis_test() {}
 
     #[test]
-    #[cfg(feature = "std")]
+    #[cfg(all(feature = "std", feature = "rand"))]
     fn string_lengths() {
         for _ in 0..10000 {
             let guid = GUID::rand();
@@ -490,7 +490,7 @@
     }
 
     #[test]
-    #[cfg(feature = "std")]
+    #[cfg(all(feature = "std", feature = "rand"))]
     fn parse_strings() {
         for _ in 0..10000 {
             let guid = GUID::rand();
