huge clippy
This commit is contained in:
parent
338a7b98c7
commit
a8b72c0a7a
|
@ -1,29 +1,27 @@
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::str::FromStr;
|
|
||||||
|
|
||||||
use js_sys::Array;
|
|
||||||
|
|
||||||
use lazy_static::lazy_static;
|
use lazy_static::lazy_static;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use wasm_bindgen::{prelude::*, JsCast, JsValue};
|
use wasm_bindgen::{prelude::*, JsCast};
|
||||||
use web_sys::{
|
use web_sys::{
|
||||||
Blob, FileReader, HtmlAnchorElement, HtmlButtonElement, HtmlDialogElement, HtmlElement,
|
FileReader, HtmlButtonElement, HtmlDialogElement,
|
||||||
HtmlFormElement, HtmlInputElement, HtmlOptionElement, HtmlSelectElement, Url,
|
HtmlFormElement, HtmlInputElement, HtmlOptionElement, HtmlSelectElement,
|
||||||
};
|
};
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
use yewdux::prelude::*;
|
use yewdux::prelude::*;
|
||||||
|
|
||||||
use crate::components::states::{CurrentTransfer, MainState};
|
use crate::components::states::{MainState};
|
||||||
use crate::components::transfer_menu::letters_to_num;
|
use crate::components::transfer_menu::letters_to_num;
|
||||||
|
|
||||||
use crate::data::transfer::Transfer;
|
use crate::data::transfer::Transfer;
|
||||||
use crate::data::transfer_region::{Region, TransferRegion};
|
use crate::data::transfer_region::{Region, TransferRegion};
|
||||||
|
|
||||||
use crate::data::csv::{state_to_csv, TransferRecord};
|
use crate::data::csv::{TransferRecord};
|
||||||
|
|
||||||
use super::main_window_callbacks::create_close_button;
|
use super::main_window_callbacks::create_close_button;
|
||||||
|
|
||||||
type NoParamsCallback = Box<dyn Fn(()) -> ()>;
|
|
||||||
|
|
||||||
pub fn import_transfer_csv_input_callback(
|
pub fn import_transfer_csv_input_callback(
|
||||||
main_dispatch: Dispatch<MainState>,
|
main_dispatch: Dispatch<MainState>,
|
||||||
modal: HtmlDialogElement,
|
modal: HtmlDialogElement,
|
||||||
|
@ -108,7 +106,7 @@ pub fn import_transfer_csv_onload_callback(
|
||||||
) -> Closure<dyn FnMut(Event)> {
|
) -> Closure<dyn FnMut(Event)> {
|
||||||
Closure::<dyn FnMut(_)>::new(move |_: Event| {
|
Closure::<dyn FnMut(_)>::new(move |_: Event| {
|
||||||
if let Some(value) = &file_reader.result().ok().and_then(|v| v.as_string()) {
|
if let Some(value) = &file_reader.result().ok().and_then(|v| v.as_string()) {
|
||||||
let (header, data) = value.split_at(value.find("\n").unwrap());
|
let (header, data) = value.split_at(value.find('\n').unwrap());
|
||||||
let modified: String = header.to_lowercase() + data;
|
let modified: String = header.to_lowercase() + data;
|
||||||
log::info!("{}", modified);
|
log::info!("{}", modified);
|
||||||
let mut rdr = csv::Reader::from_reader(value.as_bytes());
|
let mut rdr = csv::Reader::from_reader(value.as_bytes());
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
#![allow(non_snake_case)]
|
#![allow(non_snake_case)]
|
||||||
use std::collections::HashSet;
|
|
||||||
|
|
||||||
use js_sys::Array;
|
use js_sys::Array;
|
||||||
use lazy_static::lazy_static;
|
|
||||||
use regex::Regex;
|
|
||||||
use wasm_bindgen::{prelude::*, JsCast, JsValue};
|
use wasm_bindgen::{prelude::*, JsCast, JsValue};
|
||||||
use web_sys::{
|
use web_sys::{
|
||||||
Blob, FileReader, HtmlAnchorElement, HtmlButtonElement, HtmlDialogElement, HtmlElement,
|
Blob, HtmlAnchorElement, HtmlDialogElement, HtmlElement,
|
||||||
HtmlFormElement, HtmlInputElement, HtmlOptionElement, HtmlSelectElement, Url,
|
HtmlFormElement, HtmlInputElement, Url,
|
||||||
};
|
};
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
use yewdux::prelude::*;
|
use yewdux::prelude::*;
|
||||||
|
|
||||||
use crate::components::states::{CurrentTransfer, MainState};
|
use crate::components::states::{CurrentTransfer, MainState};
|
||||||
use crate::components::transfer_menu::letters_to_num;
|
|
||||||
|
|
||||||
use crate::data::transfer::Transfer;
|
|
||||||
use crate::data::transfer_region::{Region, TransferRegion};
|
|
||||||
|
|
||||||
use crate::data::csv::{state_to_csv, TransferRecord};
|
|
||||||
|
|
||||||
type NoParamsCallback = Box<dyn Fn(()) -> ()>;
|
|
||||||
|
|
||||||
|
use crate::data::csv::{state_to_csv};
|
||||||
|
|
||||||
|
type NoParamsCallback = Box<dyn Fn(())>;
|
||||||
|
|
||||||
pub fn create_close_button(close: &Closure<dyn FnMut(Event)>) -> HtmlElement {
|
pub fn create_close_button(close: &Closure<dyn FnMut(Event)>) -> HtmlElement {
|
||||||
let document = web_sys::window().unwrap().document().unwrap();
|
let document = web_sys::window().unwrap().document().unwrap();
|
||||||
|
@ -33,7 +33,7 @@ pub fn create_close_button(close: &Closure<dyn FnMut(Event)>) -> HtmlElement {
|
||||||
close_button.set_class_name("close_button");
|
close_button.set_class_name("close_button");
|
||||||
close_button.set_onclick(Some(close.as_ref().unchecked_ref()));
|
close_button.set_onclick(Some(close.as_ref().unchecked_ref()));
|
||||||
|
|
||||||
return close_button;
|
close_button
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn toggle_in_transfer_hashes_callback(
|
pub fn toggle_in_transfer_hashes_callback(
|
||||||
|
|
|
@ -8,7 +8,7 @@ use yewdux::prelude::*;
|
||||||
use crate::components::states::{CurrentTransfer, MainState};
|
use crate::components::states::{CurrentTransfer, MainState};
|
||||||
use crate::data::transfer_region::Region;
|
use crate::data::transfer_region::Region;
|
||||||
|
|
||||||
type NoParamsCallback = Box<dyn Fn(()) -> ()>;
|
type NoParamsCallback = Box<dyn Fn(())>;
|
||||||
|
|
||||||
pub fn open_plate_info_callback(
|
pub fn open_plate_info_callback(
|
||||||
plate_menu_id: UseStateHandle<Option<Uuid>>,
|
plate_menu_id: UseStateHandle<Option<Uuid>>,
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#![allow(non_snake_case)]
|
#![allow(non_snake_case)]
|
||||||
|
|
||||||
use js_sys::Array;
|
|
||||||
use wasm_bindgen::{prelude::*, JsCast, JsValue};
|
|
||||||
use web_sys::{Blob, HtmlAnchorElement, HtmlDialogElement, HtmlFormElement, HtmlInputElement, Url};
|
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
use yewdux::prelude::*;
|
use yewdux::prelude::*;
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ use crate::data::transfer_region::Region;
|
||||||
use crate::components::plates::util::Palettes;
|
use crate::components::plates::util::Palettes;
|
||||||
const PALETTE: super::util::ColorPalette = Palettes::RAINBOW;
|
const PALETTE: super::util::ColorPalette = Palettes::RAINBOW;
|
||||||
|
|
||||||
use super::super::transfer_menu::{num_to_letters, RegionDisplay};
|
use super::super::transfer_menu::{num_to_letters};
|
||||||
|
|
||||||
use super::plate_data::*;
|
use super::plate_data::*;
|
||||||
use super::plate_callbacks;
|
use super::plate_callbacks;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use serde::{Serialize, Deserialize};
|
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
|
|
||||||
use crate::data::plate_instances::PlateInstance;
|
use crate::data::plate_instances::PlateInstance;
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
// https://iquilezles.org/articles/palettes/
|
// https://iquilezles.org/articles/palettes/
|
||||||
// http://dev.thi.ng/gradients/
|
// http://dev.thi.ng/gradients/
|
||||||
|
|
||||||
use rand::prelude::*;
|
|
||||||
use rand::rngs::SmallRng;
|
|
||||||
use lazy_static::lazy_static;
|
|
||||||
|
|
||||||
#[derive(Clone, Copy, PartialEq, Debug)]
|
#[derive(Clone, Copy, PartialEq, Debug)]
|
||||||
pub struct ColorPalette {
|
pub struct ColorPalette {
|
||||||
|
@ -41,17 +41,17 @@ impl ColorPalette {
|
||||||
// self.get(r.gen_range(0.0..1.0f64))
|
// self.get(r.gen_range(0.0..1.0f64))
|
||||||
// }
|
// }
|
||||||
|
|
||||||
pub fn get_ordered(&self, t: uuid::Uuid, ordered_uuids: &Vec<uuid::Uuid>)
|
pub fn get_ordered(&self, t: uuid::Uuid, ordered_uuids: &[uuid::Uuid])
|
||||||
-> [f64; 3] {
|
-> [f64; 3] {
|
||||||
let index = ordered_uuids.iter().position(|&x| x == t).expect("uuid must be in list of uuids") + 1;
|
let index = ordered_uuids.iter().position(|&x| x == t).expect("uuid must be in list of uuids") + 1;
|
||||||
return self.get(Self::space_evenly(index))
|
self.get(Self::space_evenly(index))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn space_evenly(x: usize) -> f64 {
|
fn space_evenly(x: usize) -> f64 {
|
||||||
let e: usize = (x.ilog2() + 1) as usize;
|
let e: usize = (x.ilog2() + 1) as usize;
|
||||||
let d: usize = (2usize.pow(e as u32)) as usize;
|
let d: usize = 2usize.pow(e as u32);
|
||||||
let n: usize = (2*x + 1) % d;
|
let n: usize = (2*x + 1) % d;
|
||||||
return (n as f64) / (d as f64);
|
(n as f64) / (d as f64)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -205,7 +205,7 @@ impl TryFrom<&str> for RegionDisplay {
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
static ref REGION_REGEX: Regex = Regex::new(r"([A-Z]+)(\d+):([A-Z]+)(\d+)").unwrap();
|
static ref REGION_REGEX: Regex = Regex::new(r"([A-Z]+)(\d+):([A-Z]+)(\d+)").unwrap();
|
||||||
}
|
}
|
||||||
if let Some(captures) = REGION_REGEX.captures(&value) {
|
if let Some(captures) = REGION_REGEX.captures(value) {
|
||||||
if captures.len() != 5 {
|
if captures.len() != 5 {
|
||||||
return Err("Not enough capture groups");
|
return Err("Not enough capture groups");
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ pub fn state_to_csv(state: &MainState) -> Result<String, Box<dyn Error>> {
|
||||||
&dest_barcode.name,
|
&dest_barcode.name,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
return records_to_csv(records);
|
records_to_csv(records)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn transfer_to_records(
|
fn transfer_to_records(
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::components::transfer_menu::RegionDisplay;
|
|
||||||
|
|
||||||
use super::plate::Plate;
|
use super::plate::Plate;
|
||||||
|
|
||||||
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug)]
|
#[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug)]
|
||||||
|
@ -32,8 +30,11 @@ impl TryFrom<Region> for ((u8, u8), (u8, u8)) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Corner = (u8, u8);
|
||||||
|
type Rectangle = (Corner, Corner);
|
||||||
impl Region {
|
impl Region {
|
||||||
pub fn new_custom(transfers: &Vec<((u8, u8), (u8, u8))>) -> Self {
|
pub fn new_custom(transfers: &Vec<Rectangle>) -> Self {
|
||||||
let mut src_pts: Vec<(u8, u8)> = Vec::with_capacity(transfers.len());
|
let mut src_pts: Vec<(u8, u8)> = Vec::with_capacity(transfers.len());
|
||||||
let mut dest_pts: Vec<(u8, u8)> = Vec::with_capacity(transfers.len());
|
let mut dest_pts: Vec<(u8, u8)> = Vec::with_capacity(transfers.len());
|
||||||
|
|
||||||
|
@ -77,7 +78,7 @@ impl TransferRegion {
|
||||||
match &self.source_region {
|
match &self.source_region {
|
||||||
Region::Rect(c1, c2) => {
|
Region::Rect(c1, c2) => {
|
||||||
let mut wells = Vec::<(u8, u8)>::new();
|
let mut wells = Vec::<(u8, u8)>::new();
|
||||||
let (ul, br) = standardize_rectangle(&c1, &c2);
|
let (ul, br) = standardize_rectangle(c1, c2);
|
||||||
let (interleave_i, interleave_j) = self.interleave_source;
|
let (interleave_i, interleave_j) = self.interleave_source;
|
||||||
// NOTE: This will panic if either is 0!
|
// NOTE: This will panic if either is 0!
|
||||||
// We'll reassign these values (still not mutable) just in case.
|
// We'll reassign these values (still not mutable) just in case.
|
||||||
|
@ -174,8 +175,8 @@ impl TransferRegion {
|
||||||
Region::Rect(c1, c2) => {
|
Region::Rect(c1, c2) => {
|
||||||
Box::new(move |(i, j)| {
|
Box::new(move |(i, j)| {
|
||||||
if source_wells.contains(&(i, j)) {
|
if source_wells.contains(&(i, j)) {
|
||||||
let possible_destination_wells = create_dense_rectangle(&c1, &c2);
|
let possible_destination_wells = create_dense_rectangle(c1, c2);
|
||||||
let (d_ul, d_br) = standardize_rectangle(&c1, &c2);
|
let (d_ul, d_br) = standardize_rectangle(c1, c2);
|
||||||
let (s_ul, s_br) =
|
let (s_ul, s_br) =
|
||||||
standardize_rectangle(&source_corners.0, &source_corners.1);
|
standardize_rectangle(&source_corners.0, &source_corners.1);
|
||||||
let s_dims = (
|
let s_dims = (
|
||||||
|
|
Loading…
Reference in New Issue