From c9fa981edec2abe0e7aebbf2cf5d0bfbe1fd5572 Mon Sep 17 00:00:00 2001 From: widberg Date: Sun, 26 Apr 2026 12:03:33 -0400 Subject: [PATCH] Remove unused functions --- .gitignore | 3 +++ bff-cli/src/cps.rs | 12 +++++++++-- bff-cli/src/names.rs | 17 ++++++++++++--- bff/src/bigfile/platforms.rs | 9 -------- bff/src/macros/names.rs | 12 ----------- bff/src/names/context.rs | 12 ----------- bff/src/names/mod.rs | 2 +- bff/src/names/value.rs | 38 ++++++---------------------------- bff/src/traits/name_display.rs | 4 +--- bff/src/traits/name_target.rs | 9 -------- bff/src/tsc/cps.rs | 15 +++++++++++--- justfile | 3 +++ 12 files changed, 50 insertions(+), 86 deletions(-) diff --git a/.gitignore b/.gitignore index ce4e1e8..b145462 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,6 @@ # compile profiling outputs /.compile-profile/ + +# cargo workspace-unused-pub +/index.scip diff --git a/bff-cli/src/cps.rs b/bff-cli/src/cps.rs index 06e275c..928b905 100644 --- a/bff-cli/src/cps.rs +++ b/bff-cli/src/cps.rs @@ -17,13 +17,21 @@ fn collect_cps_names(cps: &Cps, name_context: &mut NameContext) -> HashSet for (path, script) in &cps.tscs { if let Some(stem) = path.file_stem().and_then(|stem| stem.to_str()) { - names.insert(name_context.parse_i32_or_hash_name(stem)); + let name = name_context + .name_type() + .parse_name_value(stem) + .unwrap_or_else(|| name_context.insert(stem)); + names.insert(name); } for line in script.lines() { if let Some(command_name) = line.split_whitespace().next() && !command_name.is_empty() { - names.insert(name_context.parse_i32_or_hash_name(command_name)); + let name = name_context + .name_type() + .parse_name_value(command_name) + .unwrap_or_else(|| name_context.insert(command_name)); + names.insert(name); } } } diff --git a/bff-cli/src/names.rs b/bff-cli/src/names.rs index 4ced61e..6a96a3a 100644 --- a/bff-cli/src/names.rs +++ b/bff-cli/src/names.rs @@ -1,7 +1,13 @@ use std::collections::VecDeque; use std::path::PathBuf; -use bff::names::{NameContext, NameType, WORDLIST_ANIMALS, WORDLIST_BIP39, get_forced_hash_string}; +use bff::names::{ + NameContext, + NameType, + WORDLIST_ANIMALS, + WORDLIST_BIP39, + get_forced_hash_string_for_type, +}; use bff::petgraph; use bff::petgraph::visit::{VisitMap, Visitable}; use clap::ValueEnum; @@ -112,7 +118,11 @@ pub fn names( } else { format!("{}{}", string, class) }; - name_context.insert(&get_forced_hash_string(name, name_string)); + name_context.insert(&get_forced_hash_string_for_type( + name_context.name_type(), + name, + name_string, + )); } } } else { @@ -125,7 +135,8 @@ pub fn names( Wordlist::Animals => name.get_wordlist_encoded_string(WORDLIST_ANIMALS), Wordlist::BIP39 => name.get_wordlist_encoded_string(WORDLIST_BIP39), }; - name_context.insert(&get_forced_hash_string( + name_context.insert(&get_forced_hash_string_for_type( + name_context.name_type(), name, format!("{}.{}", string, class), )); diff --git a/bff/src/bigfile/platforms.rs b/bff/src/bigfile/platforms.rs index 4f8ad0e..e54116b 100644 --- a/bff/src/bigfile/platforms.rs +++ b/bff/src/bigfile/platforms.rs @@ -1,8 +1,3 @@ -use std::ffi::OsStr; - -use binrw::Endian; - -use crate::BffResult; use crate::macros::platforms::platforms; // Add new platforms to the end of this list @@ -28,7 +23,3 @@ platforms! { XboxSeries([D("DXS", "NXS")], Little), ] } - -pub fn try_extension_to_endian(extension: &OsStr) -> BffResult { - extension.try_into().map(>::into) -} diff --git a/bff/src/macros/names.rs b/bff/src/macros/names.rs index 12249cc..82c338e 100644 --- a/bff/src/macros/names.rs +++ b/bff/src/macros/names.rs @@ -80,18 +80,6 @@ macro_rules! names { } } - pub fn name_from_i32(self, value: i32) -> $crate::names::Name { - match self { - $(NameType::$name => $crate::names::value::name_from_i32_for_hash::<[<$name NameHashFunction>]>(value),)* - } - } - - pub fn value_from_name(self, name: $crate::names::Name) -> i64 { - match self { - $(NameType::$name => $crate::names::value::name_value_for_hash::<[<$name NameHashFunction>]>(name),)* - } - } - pub fn value_string_from_name(self, name: $crate::names::Name) -> String { match self { $(NameType::$name => $crate::names::value::name_value_string_for_hash::<[<$name NameHashFunction>]>(name),)* diff --git a/bff/src/names/context.rs b/bff/src/names/context.rs index 9f2e1e9..cd902cb 100644 --- a/bff/src/names/context.rs +++ b/bff/src/names/context.rs @@ -90,14 +90,6 @@ fn into_retyped_names( names } -fn parse_i32_or_hash_name(names: &mut NameMap, name_type: NameType, token: &str) -> Name { - if let Some(name) = name_type.parse_name_value(token) { - name - } else { - insert_name(names, name_type, token) - } -} - fn insert_name(names: &mut NameMap, name_type: NameType, string: &str) -> Name { let name = hash_string_for_type(name_type, string); names.entry(name).or_insert_with(|| string.to_owned()); @@ -226,10 +218,6 @@ impl NameContext { self.default_name } - pub fn parse_i32_or_hash_name(&mut self, token: &str) -> Name { - parse_i32_or_hash_name(&mut self.names, self.name_type, token) - } - pub fn insert(&mut self, string: &str) -> Name { insert_name(&mut self.names, self.name_type, string) } diff --git a/bff/src/names/mod.rs b/bff/src/names/mod.rs index 12283d2..09e9d1d 100644 --- a/bff/src/names/mod.rs +++ b/bff/src/names/mod.rs @@ -8,7 +8,7 @@ pub use context::NameContext; pub use value::{ Name, NameWithContext, - get_forced_hash_string, + get_forced_hash_string_for_type, hash_string_for_type, parse_forced_hash_name, }; diff --git a/bff/src/names/value.rs b/bff/src/names/value.rs index e70d7d2..0f80cf0 100644 --- a/bff/src/names/value.rs +++ b/bff/src/names/value.rs @@ -64,16 +64,6 @@ impl Name { get_wordlist_encoded_string(self.0, wordlist) } } - - pub fn get_value(&self) -> i64 { - match current_name_type() { - Some(name_type) => name_type.value_from_name(*self), - None => match u32::try_from(self.0) { - Ok(v) => i64::from(v as i32), - Err(_) => self.0 as i64, - }, - } - } } pub struct NameWithContext<'a> { @@ -98,12 +88,12 @@ where out } -pub fn get_forced_hash_string>(name: Name, string: S) -> String { - let value = with_name_context(|name_context| { - name_context - .map(|ctx| ctx.name_type().value_string_from_name(name)) - .unwrap_or_else(|| name.get_value().to_string()) - }); +pub fn get_forced_hash_string_for_type>( + name_type: NameType, + name: Name, + string: S, +) -> String { + let value = name_type.value_string_from_name(name); let string = string.as_ref(); format!("{FORCED_NAME_STRING_CHAR}{value}{FORCED_NAME_STRING_CHAR}{string}") } @@ -138,22 +128,6 @@ where Name::from_hash_target::(H::hash(bytes)) } -pub(super) fn name_from_i32_for_hash(value: i32) -> Name -where - H: NameHashFunction, -{ - Name::from_hash_target::(H::Target::from_i32(value)) -} - -pub(super) fn name_value_for_hash(name: Name) -> i64 -where - H: NameHashFunction, -{ - let value: H::Target = name.to_hash_target::(); - let display = H::display_from_target(value); - display.as_() -} - pub(super) fn name_value_string_for_hash(name: Name) -> String where H: NameHashFunction, diff --git a/bff/src/traits/name_display.rs b/bff/src/traits/name_display.rs index 9fb03bf..698f3ef 100644 --- a/bff/src/traits/name_display.rs +++ b/bff/src/traits/name_display.rs @@ -1,9 +1,7 @@ use std::fmt::Display; use std::str::FromStr; -use num_traits::AsPrimitive; - -pub trait NameDisplay: Copy + Display + FromStr + AsPrimitive { +pub trait NameDisplay: Copy + Display + FromStr { fn from_target(target: Target) -> Self; fn into_target(self) -> Target; } diff --git a/bff/src/traits/name_target.rs b/bff/src/traits/name_target.rs index 1ce08b0..ffb884d 100644 --- a/bff/src/traits/name_target.rs +++ b/bff/src/traits/name_target.rs @@ -1,14 +1,9 @@ pub trait NameTarget: Copy { - fn from_i32(value: i32) -> Self; fn from_raw(raw: u64) -> Self; fn into_raw(self) -> u64; } impl NameTarget for u32 { - fn from_i32(value: i32) -> Self { - value as u32 - } - fn from_raw(raw: u64) -> Self { raw as u32 } @@ -19,10 +14,6 @@ impl NameTarget for u32 { } impl NameTarget for u64 { - fn from_i32(value: i32) -> Self { - i64::from(value) as u64 - } - fn from_raw(raw: u64) -> Self { raw } diff --git a/bff/src/tsc/cps.rs b/bff/src/tsc/cps.rs index 04ffb56..9c04a54 100644 --- a/bff/src/tsc/cps.rs +++ b/bff/src/tsc/cps.rs @@ -214,7 +214,10 @@ fn encode_cps_script( if command_name_token.contains('%') { eprintln!("ERROR: Command names should not use '%': {command_name_token}"); } - let command_name = name_context.parse_i32_or_hash_name(&command_name_token); + let command_name = name_context + .name_type() + .parse_name_value(&command_name_token) + .unwrap_or_else(|| name_context.insert(&command_name_token)); let mut params: Vec = Vec::with_capacity(args.len().saturating_sub(1)); for param_token in args.into_iter().skip(1) { let upper = param_token.to_ascii_uppercase(); @@ -332,9 +335,15 @@ impl BinWrite for Cps { let name = if is_bare_numeric_tsc { let stem = path.file_stem().and_then(|stem| stem.to_str()).unwrap(); - name_context.parse_i32_or_hash_name(stem) + name_context + .name_type() + .parse_name_value(stem) + .unwrap_or_else(|| name_context.insert(stem)) } else { - name_context.parse_i32_or_hash_name(path_string.as_ref()) + name_context + .name_type() + .parse_name_value(path_string.as_ref()) + .unwrap_or_else(|| name_context.insert(path_string.as_ref())) }; // Sort by unsigned hash value for deterministic CPS ordering. let sort_key = name.as_raw(); diff --git a/justfile b/justfile index e77f76a..faecb1d 100644 --- a/justfile +++ b/justfile @@ -131,6 +131,9 @@ zizmor: machete: cargo machete +unused: + cargo workspace-unused-pub + flint: fmt clippy deny zizmor machete check: flint test