diff options
| author | mo8it <mo8it@proton.me> | 2024-05-25 18:19:30 +0200 |
|---|---|---|
| committer | mo8it <mo8it@proton.me> | 2024-05-25 18:19:30 +0200 |
| commit | beb7b24e8e9fe05cbcfaaf4676d52f63351fad16 (patch) | |
| tree | 782637ddff0e58c6fddcab257e0619768396b50f /src/cargo_toml.rs | |
| parent | 990c68efcba8e1e2b7f2d8c5b6c16885d3920010 (diff) | |
Add solutions to bins
Diffstat (limited to 'src/cargo_toml.rs')
| -rw-r--r-- | src/cargo_toml.rs | 19 |
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"); } } |
