From 719b33391ddc28f0dbe51f7519979ab71079dc38 Mon Sep 17 00:00:00 2001 From: rowan Date: Wed, 9 Jul 2025 12:01:29 -0400 Subject: [PATCH] cleanup with clippy --- crates/osstr_traits/Cargo.toml | 4 +++- crates/osstr_traits/src/lib.rs | 18 ++++++++++++++---- crates/osstr_traits_derive/src/attr_args.rs | 5 +++-- crates/osstr_traits_derive/src/lib.rs | 8 ++++---- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/crates/osstr_traits/Cargo.toml b/crates/osstr_traits/Cargo.toml index 468143d..cc80610 100644 --- a/crates/osstr_traits/Cargo.toml +++ b/crates/osstr_traits/Cargo.toml @@ -3,4 +3,6 @@ name = "osstr_traits" version = "0.1.0" edition = "2024" -[dependencies] +[features] +derive = [] + diff --git a/crates/osstr_traits/src/lib.rs b/crates/osstr_traits/src/lib.rs index 28debbe..66a0c6c 100644 --- a/crates/osstr_traits/src/lib.rs +++ b/crates/osstr_traits/src/lib.rs @@ -1,5 +1,9 @@ pub mod impls; +#[cfg(feature = "derive")] +#[macro_use] +extern crate osstr_traits_derive; + use std::ffi::{OsStr, OsString}; use std::fmt; @@ -33,11 +37,17 @@ impl OsStringFormatter { self.inner.push(s); Ok(()) } + + pub fn into_os_string(self) -> OsString { + self.inner + } } -impl ToOsString for OsStringFormatter { - fn to_os_string(&self) -> OsString { - self.inner.clone() +impl Default for OsStringFormatter { + fn default() -> Self { + Self { + inner: OsString::new(), + } } } @@ -49,7 +59,7 @@ impl ToOsString for T { fn to_os_string(&self) -> OsString { let mut formatter = OsStringFormatter::new(); match self.fmt_os(&mut formatter) { - Ok(_) => formatter.to_os_string(), + Ok(_) => formatter.into_os_string(), Err(_) => OsString::new(), } } diff --git a/crates/osstr_traits_derive/src/attr_args.rs b/crates/osstr_traits_derive/src/attr_args.rs index 5b2711f..3da72ce 100644 --- a/crates/osstr_traits_derive/src/attr_args.rs +++ b/crates/osstr_traits_derive/src/attr_args.rs @@ -21,9 +21,10 @@ impl Parse for OsDisplayAttribute { if lookahead.peek(transparent) { input.parse::()?; if !input.is_empty() { - return Err(input.error("Unexpected tokens after `transparent` attribute.")); + Err(input.error("Unexpected tokens after `transparent` attribute.")) + } else { + Ok(OsDisplayAttribute::Transparent) } - return Ok(OsDisplayAttribute::Transparent); } else if lookahead.peek(LitStr) { let format_string = input.parse()?; diff --git a/crates/osstr_traits_derive/src/lib.rs b/crates/osstr_traits_derive/src/lib.rs index d7c9e95..e72f860 100644 --- a/crates/osstr_traits_derive/src/lib.rs +++ b/crates/osstr_traits_derive/src/lib.rs @@ -80,7 +80,7 @@ pub fn os_display_derive(input: TokenStream) -> TokenStream { } } } else { - let variant_name_str = format!("{}", variant_name); + let variant_name_str = format!("{variant_name}"); quote! { f.write_str(#variant_name_str)?; } }; @@ -95,7 +95,7 @@ pub fn os_display_derive(input: TokenStream) -> TokenStream { .unnamed .iter() .enumerate() - .map(|(i, _)| Ident::new(&format!("_{}", i), variant.span())) + .map(|(i, _)| Ident::new(&format!("_{i}"), variant.span())) .collect(); if let Some(attr) = os_display_attr { if let Ok(OsDisplayAttribute::Transparent) = attr.parse_args_with(OsDisplayAttribute::parse) { @@ -214,7 +214,7 @@ pub fn os_display_derive(input: TokenStream) -> TokenStream { } }, Fields::Unnamed(fields) => { - let idents: Vec = fields.unnamed.iter().enumerate().map(|(i, _)| Ident::new(&format!("_{}", i), name.span())).collect(); + let idents: Vec = fields.unnamed.iter().enumerate().map(|(i, _)| Ident::new(&format!("_{i}"), name.span())).collect(); quote! { let Self(#(#idents),*) = self; } @@ -274,7 +274,7 @@ fn parse_os_display_format_string( let mut placeholder_content = String::new(); - while let Some(p) = chars.next() { + for p in &mut chars { if p == '}' { break; }