Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e73961f

Browse files
Fix(config reset when syncing config) (#207)
* fix(Add RUSTC_BOOTSTRAP to devshell) * fix(Serialize config if non-default, rather than never)
1 parent 9bb6380 commit e73961f

File tree

3 files changed

+34
-11
lines changed

3 files changed

+34
-11
lines changed

β€Žflake.nixβ€Ž

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878

7979
# Env vars
8080
# a nightly compiler is required unless we use this cheat code.
81-
RUSTC_BOOTSTRAP = 0;
81+
RUSTC_BOOTSTRAP = 1;
8282

8383
# CFG_RELEASE = "${rustPlatform.rust.rustc.version}-stable";
8484
CFG_RELEASE_CHANNEL = "stable";
@@ -104,6 +104,8 @@
104104
PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig";
105105
RUST_BACKTRACE = "full";
106106
LD_LIBRARY_PATH = lib.makeLibraryPath buildInputs;
107+
RUSTC_BOOTSTRAP = 1;
108+
CFG_RELEASE_CHANNEL = "stable";
107109
};
108110
}
109111
);

β€Žrust-toolchain.tomlβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ components = [
66
"rustfmt",
77
"clippy",
88
"rust-analyzer",
9+
"rust-src"
910
]
1011
profile = "minimal"

β€Žsrc/config/code.rsβ€Ž

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,29 @@
11
//! Code in config
22
use serde::{Deserialize, Serialize};
33

4+
const PICK_DEFAULT: &str = "${fid}.${slug}";
45
fn default_pick() -> String {
5-
"${fid}.${slug}".into()
6+
PICK_DEFAULT.into()
67
}
78

9+
const SUBMISSION_DEFAULT: &str = "${fid}.${slug}.${sid}.${ac}";
810
fn default_submission() -> String {
9-
"${fid}.${slug}.${sid}.${ac}".into()
11+
SUBMISSION_DEFAULT.into()
12+
}
13+
14+
fn is_default_pick(t: &String) -> bool {
15+
t == PICK_DEFAULT
16+
}
17+
18+
fn is_default_submission(t: &String) -> bool {
19+
t == SUBMISSION_DEFAULT
20+
}
21+
22+
fn is_default_string(t: &String) -> bool {
23+
t.is_empty()
24+
}
25+
fn is_default_bool(t: &bool) -> bool {
26+
!t
1027
}
1128

1229
/// Code config
@@ -18,26 +35,29 @@ pub struct Code {
1835
pub editor_args: Option<Vec<String>>,
1936
#[serde(rename(serialize = "editor-envs"), alias = "editor-envs", default)]
2037
pub editor_envs: Option<Vec<String>>,
21-
#[serde(default, skip_serializing)]
38+
#[serde(default, skip_serializing_if = "is_default_bool")]
2239
pub edit_code_marker: bool,
23-
#[serde(default, skip_serializing)]
40+
#[serde(default, skip_serializing_if = "is_default_string")]
2441
pub start_marker: String,
25-
#[serde(default, skip_serializing)]
42+
#[serde(default, skip_serializing_if = "is_default_string")]
2643
pub end_marker: String,
2744
#[serde(rename(serialize = "inject_before"), alias = "inject_before", default)]
2845
pub inject_before: Option<Vec<String>>,
2946
#[serde(rename(serialize = "inject_after"), alias = "inject_after", default)]
3047
pub inject_after: Option<Vec<String>>,
31-
#[serde(default, skip_serializing)]
48+
#[serde(default, skip_serializing_if = "is_default_bool")]
3249
pub comment_problem_desc: bool,
33-
#[serde(default, skip_serializing)]
50+
#[serde(default, skip_serializing_if = "is_default_string")]
3451
pub comment_leading: String,
35-
#[serde(default, skip_serializing)]
52+
#[serde(default, skip_serializing_if = "is_default_bool")]
3653
pub test: bool,
3754
pub lang: String,
38-
#[serde(default = "default_pick", skip_serializing)]
55+
#[serde(default = "default_pick", skip_serializing_if = "is_default_pick")]
3956
pub pick: String,
40-
#[serde(default = "default_submission", skip_serializing)]
57+
#[serde(
58+
default = "default_submission",
59+
skip_serializing_if = "is_default_submission"
60+
)]
4161
pub submission: String,
4262
}
4363

0 commit comments

Comments
(0)

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /