summaryrefslogtreecommitdiff
path: root/src/cargo_toml.rs
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2024-05-25 18:19:30 +0200
committermo8it <mo8it@proton.me>2024-05-25 18:19:30 +0200
commitbeb7b24e8e9fe05cbcfaaf4676d52f63351fad16 (patch)
tree782637ddff0e58c6fddcab257e0619768396b50f /src/cargo_toml.rs
parent990c68efcba8e1e2b7f2d8c5b6c16885d3920010 (diff)
Add solutions to bins
Diffstat (limited to 'src/cargo_toml.rs')
-rw-r--r--src/cargo_toml.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/cargo_toml.rs b/src/cargo_toml.rs
index b7951f6..cf17acd 100644
--- a/src/cargo_toml.rs
+++ b/src/cargo_toml.rs
@@ -1,4 +1,5 @@
use anyhow::{Context, Result};
+use std::path::Path;
use crate::info_file::ExerciseInfo;
@@ -40,6 +41,24 @@ pub fn append_bins(
}
buf.extend_from_slice(exercise_info.name.as_bytes());
buf.extend_from_slice(b".rs\" },\n");
+
+ let sol_path = exercise_info.sol_path();
+ if !Path::new(&sol_path).exists() {
+ continue;
+ }
+
+ buf.extend_from_slice(b" { name = \"");
+ buf.extend_from_slice(exercise_info.name.as_bytes());
+ buf.extend_from_slice(b"_sol");
+ buf.extend_from_slice(b"\", path = \"");
+ buf.extend_from_slice(exercise_path_prefix);
+ buf.extend_from_slice(b"solutions/");
+ if let Some(dir) = &exercise_info.dir {
+ buf.extend_from_slice(dir.as_bytes());
+ buf.push(b'/');
+ }
+ buf.extend_from_slice(exercise_info.name.as_bytes());
+ buf.extend_from_slice(b".rs\" },\n");
}
}