refactor: increase generation speed

This commit is contained in:
Anna 2023-08-30 13:43:23 -04:00
parent fae0746382
commit fae0ce4539
Signed by: anna
GPG Key ID: D0943384CD9F87D1
1 changed files with 25 additions and 8 deletions

View File

@ -266,6 +266,7 @@ fn main() -> Result<()> {
};
let mut sha1 = Sha1::default();
let mut buffer = itoa::Buffer::new();
loop {
if found.load(Ordering::SeqCst) {
break;
@ -281,7 +282,6 @@ fn main() -> Result<()> {
}
};
let mut buffer = itoa::Buffer::new();
let append = if gpg.is_some() || seq_key.is_some() {
None
} else {
@ -356,21 +356,38 @@ fn main() -> Result<()> {
}
}
let message = match append {
Some(append) => Cow::from(format!("{message}\n{append}\n")),
None => Cow::from(&message),
let message_len = match &append {
Some(a) => message.len() + a.len() + 2,
None => message.len(),
};
let total = format!("{header}\n{message}");
let raw_commit = format!("commit {}\0", total.len());
sha1.update(&raw_commit);
sha1.update(&total);
sha1.update("commit ");
sha1.update(buffer.format(header.len() + message_len + 1));
sha1.update([0]);
sha1.update(&header);
sha1.update("\n");
match &append {
Some(a) => {
sha1.update(&message);
sha1.update("\n");
sha1.update(a);
sha1.update("\n");
}
None => sha1.update(&message),
}
let hash = sha1.finalize_reset();
let hash = data_encoding::HEXLOWER.encode(&hash);
bar.inc(1);
if hash.starts_with(&prefix) {
found.store(true, Ordering::SeqCst);
let message = match append {
Some(append) => Cow::from(format!("{message}\n{append}\n")),
None => Cow::from(&message),
};
let total = format!("{header}\n{message}");
let raw_commit = format!("commit {}\0", total.len());
commit_tx.send((hash, format!("{raw_commit}{total}"))).unwrap();
break;
}