Cargo clippy, tweaks, etc

[?]
Jan 18, 2022, 8:17 PM
AOO3FCSGBMVD5YFMP2JO2P7ACWZF7IS6G3EI75GRYOIS4EIKPKHQC

Dependencies

  • [2] MFGAW2Q2 Cache preferences in memory
  • [3] 272LZTVT Move terminal cleanup to Drop implementation
  • [4] C376NCOV Prevent flooding the website (still need to better mimic browser requests)
  • [5] AVLXUT3R Make the boxed errors Send
  • [6] YCWYAX6K Functions for scraping names integrated enough to test (they don't work yet)
  • [7] QEKHTVB7 Get most things semi-working except the final sort
  • [8] PQ4BG3ZJ The web scrape functions
  • [9] LPVC545K Get the scraper part of this program working
  • [10] 5Y7ZXB53 Start picker UI
  • [11] LLFG625I Should be all the database functions I need
  • [12] CYDK6S5L Fix bugs

Change contents

  • edit in src/pick.rs at line 14
    [3.203]
    [3.277]
    type IDedName = (String, i64);
  • replacement in src/pick.rs at line 22
    [3.322][3.322:367]()
    let (ntx, mut nrx) = mpsc::channel(256);
    [3.322]
    [3.367]
    let (ntx, mut nrx) = mpsc::channel(count as usize / 2 + count as usize % 2);
  • replacement in src/pick.rs at line 28
    [3.554][3.554:935]()
    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,
    [3.554]
    [3.935]
    '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
    [3.957][3.957:976]()
    };
    [3.957]
    [3.976]
    }
  • replacement in src/pick.rs at line 80
    [3.153][2.28:99]()
    let mut comparator = CompareContext::new(&db, &mut stderr).await?;
    [3.153]
    [3.1875]
    let mut comparator = CompareContext::new(db.clone(), &mut stderr).await?;
  • replacement in src/pick.rs at line 95
    [3.2268][3.2268:2365]()
    let mut i: *mut (String, i64) = &mut shortlist[0];
    let j: *mut (String, i64) = {
    [3.2268]
    [3.2365]
    let mut i: *mut IDedName = &mut shortlist[0];
    let j: *mut IDedName = {
  • replacement in src/pick.rs at line 100
    [3.2451][3.46:122]()
    let pivot: *mut (String, i64) = &mut shortlist[count as usize - 1];
    [3.2451]
    [3.2523]
    let pivot: *mut IDedName =
    unsafe { i.offset(j.offset_from(i) / 2) };
  • replacement in src/pick.rs at line 111
    [3.170][2.100:171]()
    let mut stack: Vec<(*mut (String, i64), *mut (String, i64))> =
    [3.170]
    [2.171]
    let mut stack: Vec<(*mut IDedName, *mut IDedName)> =
  • replacement in src/pick.rs at line 131
    [3.146][3.2807:2836](),[3.2807][3.2807:2836]()
    db: &'a AsyncConnection,
    [3.146]
    [3.147]
    db: AsyncConnection,
  • replacement in src/pick.rs at line 146
    [2.309][2.309:342]()
    db: &'a AsyncConnection,
    [2.309]
    [2.342]
    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)> {
    [3.3037]
    [2.667]
    lo: *mut IDedName,
    hi: *mut IDedName,
    pivot: *mut IDedName,
    ) -> DynResult<*mut IDedName> {
  • replacement in src/pick.rs at line 197
    [3.4046][3.4046:4100]()
    a: &(String, i64),
    b: &(String, i64),
    [3.4046]
    [3.4100]
    a: &IDedName,
    b: &IDedName,
  • replacement in src/grid.rs at line 15
    [2.3533][2.3533:3595]()
    pub fn column<'a>(&'a self, x: usize) -> BoolColumn<'a> {
    [2.3533]
    [2.3595]
    pub fn column(&self, x: usize) -> BoolColumn<'_> {
  • replacement in src/grid.rs at line 19
    [2.3635][2.3635:3691]()
    pub fn row<'a>(&'a self, y: usize) -> BoolRow<'a> {
    [2.3635]
    [2.3691]
    pub fn row(&self, y: usize) -> BoolRow<'_> {
  • replacement in src/grid.rs at line 247
    [2.10515][2.10515:10581]()
    std::mem::replace(&mut self.content, Vec::new()),
    [2.10515]
    [2.10581]
    std::mem::take(&mut self.content),
  • replacement in src/gather.rs at line 22
    [3.485][3.485:559]()
    pub fn all_names(filter: Gender) -> tokio::sync::mpsc::Receiver<String> {
    [3.485]
    [3.559]
    pub fn all_names(filter: Gender) -> tokio::sync::mpsc::Receiver<Vec<String>> {
  • replacement in src/gather.rs at line 29
    [3.473][3.651:712](),[3.651][3.651:712]()
    Err(err) => {
    dbg!(err);
    [3.473]
    [3.474]
    Err(_) => {
  • replacement in src/gather.rs at line 38
    [3.698][3.698:904]()
    for (name, gender) in page {
    if filter.allow(&gender) {
    tx.send(name).await.unwrap();
    }
    }
    [3.698]
    [3.904]
    match tx
    .send(
    page.into_iter()
    .filter_map(|(name, gender)| {
    if filter.allow(&gender) {
    Some(name)
    } else {
    None
    }
    })
    .collect(),
    )
    .await
    {
    Ok(_) => (),
    Err(_) => break,
    };