From 43701118359dcae05392b75e6252543b9b5f5086 Mon Sep 17 00:00:00 2001 From: Maciej Gierada Date: Thu, 17 Aug 2023 13:48:05 +0200 Subject: [PATCH] feat: add docstrings to util method --- Cargo.toml | 2 +- src/utils/request.rs | 46 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 47f18c2..9b8e749 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "govee-api" authors = ["Maciej Gierada"] -version = "1.0.1" +version = "1.0.2" edition = "2021" license = "MIT OR Apache-2.0" keywords = ["govee", "api", "wrapper", "client", "sdk"] diff --git a/src/utils/request.rs b/src/utils/request.rs index 7c641e5..0fecf35 100644 --- a/src/utils/request.rs +++ b/src/utils/request.rs @@ -4,6 +4,52 @@ use serde::de; // ------------------------ // +/// Deserialize a boolean value from a given deserializer. +/// +/// This function deserializes a boolean value from the provided deserializer. It handles +/// both boolean values and string representations of 'true' and 'false'. If the incoming +/// value is a boolean, it is returned directly. If the incoming value is a string 'true', +/// it returns true; if it's a string 'false', it returns false. For any other input, an +/// error is returned. +/// +/// # Arguments +/// +/// * `deserializer` - The deserializer implementing the `de::Deserializer` trait. +/// +/// # Returns +/// +/// Returns a `Result` containing the deserialized boolean value if successful, or an +/// error of type `D::Error` if deserialization fails or the input is not a valid boolean +/// representation. +/// +/// # Examples +/// +/// ```rust +/// use serde::de::Deserialize; +/// +/// let json = r#""true""#; +/// let deserializer = serde_json::Deserializer::from_str(json); +/// let result: Result = deserialize_bool(deserializer); +/// assert_eq!(result, Ok(true)); +/// ``` +/// +/// ```rust +/// use serde::de::Deserialize; +/// +/// let json = r#"false"#; +/// let deserializer = serde_json::Deserializer::from_str(json); +/// let result: Result = deserialize_bool(deserializer); +/// assert_eq!(result, Ok(false)); +/// ``` +/// +/// ```rust +/// use serde::de::Deserialize; +/// +/// let json = r#"42"#; // This input is not a valid boolean representation +/// let deserializer = serde_json::Deserializer::from_str(json); +/// let result: Result = deserialize_bool(deserializer); +/// assert!(result.is_err()); +/// ``` pub fn deserialize_bool<'de, D>(deserializer: D) -> Result where D: de::Deserializer<'de>,