Cargo clippy, tweaks, etc
[?]
Jan 18, 2022, 8:17 PM
AOO3FCSGBMVD5YFMP2JO2P7ACWZF7IS6G3EI75GRYOIS4EIKPKHQCDependencies
- [2]
MFGAW2Q2Cache preferences in memory - [3]
272LZTVTMove terminal cleanup to Drop implementation - [4]
C376NCOVPrevent flooding the website (still need to better mimic browser requests) - [5]
AVLXUT3RMake the boxed errors Send - [6]
YCWYAX6KFunctions for scraping names integrated enough to test (they don't work yet) - [7]
QEKHTVB7Get most things semi-working except the final sort - [8]
PQ4BG3ZJThe web scrape functions - [9]
LPVC545KGet the scraper part of this program working - [10]
5Y7ZXB53Start picker UI - [11]
LLFG625IShould be all the database functions I need - [12]
CYDK6S5LFix bugs
Change contents
- edit in src/pick.rs at line 14
type IDedName = (String, i64); - replacement in src/pick.rs at line 22
let (ntx, mut nrx) = mpsc::channel(256);let (ntx, mut nrx) = mpsc::channel(count as usize / 2 + count as usize % 2); - replacement in src/pick.rs at line 28
while let Some(name) = incoming.recv().await {let (id, fresh) = match gdb.add_name(name.clone()).await {Ok(r) => r,Err(_) => break,};if fresh {match tg.send((name, id)).await {Ok(_) => (),Err(_) => break,'getpages: while let Some(names) = incoming.recv().await {let handles: Vec<_> = names.into_iter().map(|name| {let xdb = gdb.clone();let xg = tg.clone();tokio::spawn(async move {if let Ok((id, true)) =xdb.add_name(name.clone()).await{xg.send((name, id)).await.is_ok()} else {false}})}).collect();for h in handles {match h.await {Ok(true) => (),_ => break 'getpages, - replacement in src/pick.rs at line 50
};} - replacement in src/pick.rs at line 80
let mut comparator = CompareContext::new(&db, &mut stderr).await?;let mut comparator = CompareContext::new(db.clone(), &mut stderr).await?; - replacement in src/pick.rs at line 95
let mut i: *mut (String, i64) = &mut shortlist[0];let j: *mut (String, i64) = {let mut i: *mut IDedName = &mut shortlist[0];let j: *mut IDedName = { - replacement in src/pick.rs at line 100
let pivot: *mut (String, i64) = &mut shortlist[count as usize - 1];let pivot: *mut IDedName =unsafe { i.offset(j.offset_from(i) / 2) }; - replacement in src/pick.rs at line 111
let mut stack: Vec<(*mut (String, i64), *mut (String, i64))> =let mut stack: Vec<(*mut IDedName, *mut IDedName)> = - replacement in src/pick.rs at line 131
db: &'a AsyncConnection,db: AsyncConnection, - replacement in src/pick.rs at line 146
db: &'a AsyncConnection,db: AsyncConnection, - replacement in src/pick.rs at line 166[3.3037]→[3.3037:3101](∅→∅),[3.3101]→[2.631:666](∅→∅),[2.666]→[3.3140:3181](∅→∅),[3.3140]→[3.3140:3181](∅→∅)
lo: *mut (String, i64),hi: *mut (String, i64),pivot: *mut (String, i64),) -> DynResult<*mut (String, i64)> {lo: *mut IDedName,hi: *mut IDedName,pivot: *mut IDedName,) -> DynResult<*mut IDedName> { - replacement in src/pick.rs at line 197
a: &(String, i64),b: &(String, i64),a: &IDedName,b: &IDedName, - replacement in src/grid.rs at line 15
pub fn column<'a>(&'a self, x: usize) -> BoolColumn<'a> {pub fn column(&self, x: usize) -> BoolColumn<'_> { - replacement in src/grid.rs at line 19
pub fn row<'a>(&'a self, y: usize) -> BoolRow<'a> {pub fn row(&self, y: usize) -> BoolRow<'_> { - replacement in src/grid.rs at line 247
std::mem::replace(&mut self.content, Vec::new()),std::mem::take(&mut self.content), - replacement in src/gather.rs at line 22
pub fn all_names(filter: Gender) -> tokio::sync::mpsc::Receiver<String> {pub fn all_names(filter: Gender) -> tokio::sync::mpsc::Receiver<Vec<String>> { - replacement in src/gather.rs at line 29
Err(err) => {dbg!(err);Err(_) => { - replacement in src/gather.rs at line 38
for (name, gender) in page {if filter.allow(&gender) {tx.send(name).await.unwrap();}}match tx.send(page.into_iter().filter_map(|(name, gender)| {if filter.allow(&gender) {Some(name)} else {None}}).collect(),).await{Ok(_) => (),Err(_) => break,};