From 717006bba8f8b02029b7732b18ed76fde368b74c Mon Sep 17 00:00:00 2001 From: "Kevin R. Thornton" Date: Thu, 6 Nov 2025 13:51:35 -0800 Subject: [PATCH] drop anyhow as a dev dependency --- Cargo.lock | 7 ----- Cargo.toml | 1 - examples/bincode_metadata.rs | 6 ++--- examples/haploid_wright_fisher.rs | 38 ++++++++++++++++++++++------ examples/json_metadata.rs | 6 ++--- examples/manual_metadata_encoding.rs | 6 ++--- src/error.rs | 10 -------- 7 files changed, 39 insertions(+), 35 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1a6be9b86..0b708105d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -59,12 +59,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "anyhow" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" - [[package]] name = "autocfg" version = "1.2.0" @@ -622,7 +616,6 @@ dependencies = [ name = "tskit" version = "0.15.0-alpha.3" dependencies = [ - "anyhow", "bincode", "bindgen", "cc", diff --git a/Cargo.toml b/Cargo.toml index 14ed5dd53..0febc1557 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,6 @@ tskit-derive = {version = "0.2.0", path = "tskit-derive", optional = true} chrono = { version = "0.4.40", default-features = false, features = ["now", "std"] , optional = true} [dev-dependencies] -anyhow = {version = "1.0.86"} clap = {version = "4.4.6", features = ["derive"]} serde = {version = "1.0.203", features = ["derive"]} serde-pickle = "1.1.0" diff --git a/examples/bincode_metadata.rs b/examples/bincode_metadata.rs index 850920f67..470211ed0 100644 --- a/examples/bincode_metadata.rs +++ b/examples/bincode_metadata.rs @@ -17,7 +17,7 @@ fn main() { ts.dump("with_bincode_metadata.trees", 0).unwrap(); } -fn make_tables() -> anyhow::Result { +fn make_tables() -> Result { let mut tables = tskit::TableCollection::new(100.0)?; let pop0 = tables.add_population()?; let ind0 = tables.add_individual_with_metadata( @@ -46,6 +46,6 @@ fn make_tables() -> anyhow::Result { Ok(tables) } -fn make_treeseq() -> anyhow::Result { - Ok(make_tables()?.tree_sequence(0)?) +fn make_treeseq() -> Result { + make_tables()?.tree_sequence(0) } diff --git a/examples/haploid_wright_fisher.rs b/examples/haploid_wright_fisher.rs index 407da558f..ae82e4a8e 100644 --- a/examples/haploid_wright_fisher.rs +++ b/examples/haploid_wright_fisher.rs @@ -1,13 +1,35 @@ // This is a rust implementation of the example // found in tskit-c -use anyhow::Result; use clap::Parser; #[cfg(test)] use rand::distributions::Distribution; use rand::prelude::*; use rand::SeedableRng; +#[derive(Debug)] +enum Error { + Tskit(tskit::TskitError), + Message(String), +} + +impl From for Error { + fn from(value: tskit::TskitError) -> Self { + Self::Tskit(value) + } +} + +impl std::fmt::Display for Error { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Tskit(e) => write!(f, "{e}"), + Self::Message(m) => write!(f, "{m}"), + } + } +} + +impl std::error::Error for Error {} + fn rotate_edges(bookmark: &tskit::types::Bookmark, tables: &mut tskit::TableCollection) { let num_edges = tables.edges().num_rows().as_usize(); let left = @@ -32,15 +54,15 @@ fn simulate( num_generations: i32, simplify_interval: i32, update_bookmark: bool, -) -> Result { +) -> Result { if popsize == 0 { - return Err(anyhow::Error::msg("popsize must be > 0")); + return Err(Error::Message("popsize must be > 0".to_string())); } if num_generations == 0 { - return Err(anyhow::Error::msg("num_generations must be > 0")); + return Err(Error::Message("num_generations must be > 0".to_string())); } if simplify_interval == 0 { - return Err(anyhow::Error::msg("simplify_interval must be > 0")); + return Err(Error::Message("simplify_interval must be > 0".to_string())); } let mut tables = tskit::TableCollection::new(1.0)?; @@ -72,10 +94,10 @@ fn simulate( let child = tables.add_node(0, bt, -1, -1)?; let left_parent = parents .get(parent_picker.sample(&mut rng)) - .ok_or_else(|| anyhow::Error::msg("invalid left_parent index"))?; + .ok_or_else(|| Error::Message("invalid left_parent index".to_string()))?; let right_parent = parents .get(parent_picker.sample(&mut rng)) - .ok_or_else(|| anyhow::Error::msg("invalid right_parent index"))?; + .ok_or_else(|| Error::Message("invalid right_parent index".to_string()))?; let breakpoint = breakpoint_generator.sample(&mut rng); tables.add_edge(0., breakpoint, *left_parent, child)?; tables.add_edge(breakpoint, 1.0, *right_parent, child)?; @@ -120,7 +142,7 @@ struct SimParams { bookmark: bool, } -fn main() -> Result<()> { +fn main() -> Result<(), Error> { let params = SimParams::parse(); let treeseq = simulate( params.seed, diff --git a/examples/json_metadata.rs b/examples/json_metadata.rs index 464d6a92c..9168d5bbd 100644 --- a/examples/json_metadata.rs +++ b/examples/json_metadata.rs @@ -17,7 +17,7 @@ fn main() { ts.dump("with_json_metadata.trees", 0).unwrap(); } -fn make_tables() -> anyhow::Result { +fn make_tables() -> Result { let mut tables = tskit::TableCollection::new(100.0)?; let pop0 = tables.add_population()?; let ind0 = tables.add_individual_with_metadata( @@ -46,6 +46,6 @@ fn make_tables() -> anyhow::Result { Ok(tables) } -fn make_treeseq() -> anyhow::Result { - Ok(make_tables()?.tree_sequence(0)?) +fn make_treeseq() -> Result { + make_tables()?.tree_sequence(0) } diff --git a/examples/manual_metadata_encoding.rs b/examples/manual_metadata_encoding.rs index 38e5ab841..d364cd62e 100644 --- a/examples/manual_metadata_encoding.rs +++ b/examples/manual_metadata_encoding.rs @@ -79,7 +79,7 @@ fn main() { ts.dump("with_manual_metadata.trees", 0).unwrap(); } -fn make_tables() -> anyhow::Result { +fn make_tables() -> Result { let mut tables = tskit::TableCollection::new(100.0)?; let pop0 = tables.add_population()?; let ind0 = tables.add_individual_with_metadata( @@ -108,8 +108,8 @@ fn make_tables() -> anyhow::Result { Ok(tables) } -fn make_treeseq() -> anyhow::Result { - Ok(make_tables()?.tree_sequence(0)?) +fn make_treeseq() -> Result { + make_tables()?.tree_sequence(0) } #[test] diff --git a/src/error.rs b/src/error.rs index aa9fb6446..3c1122710 100644 --- a/src/error.rs +++ b/src/error.rs @@ -107,14 +107,4 @@ mod test { panic!(); } } - - #[test] - fn test_anyhow_compatability() { - fn foo() -> anyhow::Result { - let tables = crate::TableCollection::new(1.0)?; - Ok(tables) - } - - let _ = foo().unwrap(); - } }