diff --git a/Cargo.lock b/Cargo.lock index aea90c9..6999210 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,6 +26,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "anyhow" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" + [[package]] name = "autocfg" version = "1.4.0" @@ -253,21 +259,6 @@ version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - [[package]] name = "futures-channel" version = "0.3.31" @@ -275,7 +266,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", - "futures-sink", ] [[package]] @@ -300,18 +290,6 @@ version = "0.3.0-alpha.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a" -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", - "num_cpus", -] - [[package]] name = "futures-executor-preview" version = "0.3.0-alpha.19" @@ -323,29 +301,12 @@ dependencies = [ "num_cpus", ] -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - [[package]] name = "futures-io-preview" version = "0.3.0-alpha.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4914ae450db1921a56c91bde97a27846287d062087d4a652efc09bb3a01ebda" -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "futures-preview" version = "0.3.0-alpha.19" @@ -384,16 +345,10 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "futures-channel", "futures-core", - "futures-io", - "futures-macro", - "futures-sink", "futures-task", - "memchr", "pin-project-lite", "pin-utils", - "slab", ] [[package]] @@ -402,7 +357,7 @@ version = "0.3.0-alpha.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ce968633c17e5f97936bd2797b6e38fb56cf16a7422319f7ec2e30d3c470e8d" dependencies = [ - "futures 0.1.31", + "futures", "futures-channel-preview", "futures-core-preview", "futures-io-preview", @@ -629,7 +584,7 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" name = "leetcode-rust" version = "0.1.0" dependencies = [ - "futures 0.3.31", + "anyhow", "rand", "regex", "reqwest", @@ -1231,7 +1186,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" dependencies = [ "bytes 0.4.12", - "futures 0.1.31", + "futures", "log", ] @@ -1407,7 +1362,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83420b37346c311b9ed822af41ec2e82839bfe99867ec6c54e2da43b7538771c" dependencies = [ "cfg-if 0.1.10", - "futures 0.1.31", + "futures", "futures-channel-preview", "futures-util-preview", "js-sys", diff --git a/Cargo.toml b/Cargo.toml index 19aa71c..d14d1a0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,9 +11,9 @@ serde_json = "1.0" serde_derive = "1.0" rand = "0.8.5" regex = "1.3.4" -futures = { version = "0.3.11", features = ["thread-pool"] } surf = "1.0.3" tokio = { version = "1.0.0", features = ["rt", "rt-multi-thread", "macros"] } +anyhow = "1.0.95" [lib] doctest = false diff --git a/src/main.rs b/src/main.rs index 2d32b98..a83d6df 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,10 @@ use crate::fetch_problem::{Fetcher, ProblemManager}; use std::fs; +use std::fs::exists; use std::io::Write; use std::path::Path; +use anyhow::anyhow; +use serde::de::Error; mod fetch_problem; @@ -41,8 +44,13 @@ async fn main() { } } -fn write_file(file_name: &String, file_content: &String) -> std::io::Result<()> { +fn write_file(file_name: &String, file_content: &String) -> anyhow::Result<()> { let file_path = Path::new("./src/problem").join(format!("{}.rs", file_name)); + + if exists(&file_path)? { + println!("{} has pulled.", file_name); + return Err(anyhow!("{} has pulled", file_name)); + } let mut file = fs::OpenOptions::new() .write(true) @@ -58,5 +66,6 @@ fn write_file(file_name: &String, file_content: &String) -> std::io::Result<()> .append(true) .open("./src/problem/mod.rs")?; - write!(mod_file, "\nmod {};", file_name) + write!(mod_file, "\nmod {};", file_name)?; + Ok(()) }