more fixes
All checks were successful
Deploy Website / deploy (push) Has been skipped

This commit is contained in:
2026-03-01 03:33:22 +01:00
parent b72c782b2b
commit 11cc925faf
24 changed files with 269 additions and 189 deletions

View File

@@ -315,7 +315,7 @@ impl Forth {
Op::Dup => {
ensure(stack, 1)?;
let v = stack.last().unwrap().clone();
let v = stack.last().expect("stack non-empty after ensure").clone();
stack.push(v);
}
Op::Dupn => {
@@ -560,7 +560,7 @@ impl Forth {
ensure(stack, 1)?;
let values = std::mem::take(stack);
let val = if values.len() == 1 {
values.into_iter().next().unwrap()
values.into_iter().next().expect("single value after len check")
} else {
Value::CycleList(Arc::from(values))
};
@@ -570,7 +570,7 @@ impl Forth {
ensure(stack, 1)?;
let values = std::mem::take(stack);
let val = if values.len() == 1 {
values.into_iter().next().unwrap()
values.into_iter().next().expect("single value after len check")
} else {
Value::CycleList(Arc::from(values))
};
@@ -1804,8 +1804,8 @@ fn euclidean_rhythm(k: usize, n: usize, rotation: usize) -> Vec<i64> {
groups.into_iter().partition(|g| g[0]);
for _ in 0..min_count {
let mut one = ones.pop().unwrap();
one.extend(zeros.pop().unwrap());
let mut one = ones.pop().expect("ones sufficient for min_count");
one.extend(zeros.pop().expect("zeros sufficient for min_count"));
new_groups.push(one);
}
new_groups.extend(ones);

View File

@@ -96,9 +96,9 @@ mod tests {
#[test]
fn roundtrip_empty() {
let pattern = Pattern::default();
let encoded = export(&pattern).unwrap();
let encoded = export(&pattern).expect("export pattern");
assert!(encoded.starts_with("cgr:"));
let decoded = import(&encoded).unwrap();
let decoded = import(&encoded).expect("import pattern");
assert_eq!(decoded.length, pattern.length);
assert_eq!(decoded.steps.len(), pattern.steps.len());
}
@@ -127,8 +127,8 @@ mod tests {
pattern.length = 8;
pattern.name = Some("Test".to_string());
let encoded = export(&pattern).unwrap();
let decoded = import(&encoded).unwrap();
let encoded = export(&pattern).expect("export pattern");
let decoded = import(&encoded).expect("import pattern");
assert_eq!(decoded.length, 8);
assert_eq!(decoded.name.as_deref(), Some("Test"));
@@ -152,9 +152,9 @@ mod tests {
#[test]
fn whitespace_trimming() {
let pattern = Pattern::default();
let encoded = export(&pattern).unwrap();
let encoded = export(&pattern).expect("export pattern");
let padded = format!(" {encoded} \n");
let decoded = import(&padded).unwrap();
let decoded = import(&padded).expect("import padded pattern");
assert_eq!(decoded.length, pattern.length);
}
@@ -172,15 +172,15 @@ mod tests {
pattern.length = 16;
// Current (msgpack+brotli)
let new_encoded = export(&pattern).unwrap();
let new_encoded = export(&pattern).expect("export pattern");
// Old pipeline (json+deflate) for comparison
use std::io::Write;
let json = serde_json::to_vec(&pattern).unwrap();
let json = serde_json::to_vec(&pattern).expect("serialize json");
let mut encoder =
flate2::write::DeflateEncoder::new(Vec::new(), flate2::Compression::best());
encoder.write_all(&json).unwrap();
let old_compressed = encoder.finish().unwrap();
encoder.write_all(&json).expect("write to encoder");
let old_compressed = encoder.finish().expect("finish encoder");
let old_encoded = format!("cgr:{}", URL_SAFE_NO_PAD.encode(&old_compressed));
assert!(
@@ -203,9 +203,9 @@ mod tests {
bank.patterns[0].length = 8;
bank.name = Some("Drums".to_string());
let encoded = export_bank(&bank).unwrap();
let encoded = export_bank(&bank).expect("export bank");
assert!(encoded.starts_with("cgrb:"));
let decoded = import_bank(&encoded).unwrap();
let decoded = import_bank(&encoded).expect("import bank");
assert_eq!(decoded.name.as_deref(), Some("Drums"));
assert_eq!(decoded.patterns[0].length, 8);

View File

@@ -487,7 +487,7 @@ impl Editor {
if is_cursor {
cursor_style
} else if is_selected {
base_style.bg(selection_style.bg.unwrap())
base_style.bg(selection_style.bg.expect("selection style has bg"))
} else {
base_style
}