summaryrefslogtreecommitdiff
path: root/src/cargo_toml.rs
diff options
context:
space:
mode:
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");
}
}