From b92eee019c5d8d807ebfe4f7ad9c08baba536750 Mon Sep 17 00:00:00 2001 From: Tensor-Programming Date: Thu, 26 Dec 2019 16:09:04 -0500 Subject: [PATCH] [Refactor] Remove unwraps from tauri (#234) * remove unwraps from tauri code * refactor bundler and remove unwraps * remove errors * cleaup and add distinctions * reword panic --- cli/tauri-cli/src/bundle/appimage_bundle.rs | 2 +- cli/tauri-cli/src/bundle/common.rs | 33 +++++++++-------- cli/tauri-cli/src/bundle/deb_bundle.rs | 8 ++--- cli/tauri-cli/src/bundle/dmg_bundle.rs | 2 +- cli/tauri-cli/src/bundle/ios_bundle.rs | 4 +-- cli/tauri-cli/src/bundle/osx_bundle.rs | 8 +++-- cli/tauri-cli/src/bundle/path_utils.rs | 2 +- cli/tauri-cli/src/bundle/settings.rs | 39 +++++++++++++-------- cli/tauri-cli/src/bundle/wix.rs | 18 +++++----- cli/tauri-cli/src/main.rs | 4 +-- tauri-api/src/file/extract.rs | 6 +++- tauri/src/app/runner.rs | 10 +++--- tauri/src/endpoints.rs | 18 ++++++---- tauri/src/event.rs | 12 ++++--- tauri/src/lib.rs | 4 +-- tauri/src/salt.rs | 28 +++++++++------ tauri/src/server.rs | 17 +++++---- 17 files changed, 128 insertions(+), 87 deletions(-) diff --git a/cli/tauri-cli/src/bundle/appimage_bundle.rs b/cli/tauri-cli/src/bundle/appimage_bundle.rs index 7ca779d81..0f06c22af 100644 --- a/cli/tauri-cli/src/bundle/appimage_bundle.rs +++ b/cli/tauri-cli/src/bundle/appimage_bundle.rs @@ -19,7 +19,7 @@ lazy_static! { handlebars .register_template_string("appimage", include_str!("templates/appimage")) - .unwrap(); + .expect("Failed to register template for handlebars"); handlebars }; } diff --git a/cli/tauri-cli/src/bundle/common.rs b/cli/tauri-cli/src/bundle/common.rs index bd6e2c19b..e5b8cf851 100644 --- a/cli/tauri-cli/src/bundle/common.rs +++ b/cli/tauri-cli/src/bundle/common.rs @@ -60,7 +60,7 @@ pub fn copy_file(from: &Path, to: &Path) -> crate::Result<()> { if !from.is_file() { bail!("{:?} is not a file", from); } - let dest_dir = to.parent().unwrap(); + let dest_dir = to.parent().expect("No data in parent"); fs::create_dir_all(dest_dir).chain_err(|| format!("Failed to create {:?}", dest_dir))?; fs::copy(from, to).chain_err(|| format!("Failed to copy {:?} to {:?}", from, to))?; Ok(()) @@ -80,12 +80,12 @@ pub fn copy_dir(from: &Path, to: &Path) -> crate::Result<()> { if to.exists() { bail!("{:?} already exists", to); } - let parent = to.parent().unwrap(); + let parent = to.parent().expect("No data in parent"); fs::create_dir_all(parent).chain_err(|| format!("Failed to create {:?}", parent))?; for entry in walkdir::WalkDir::new(from) { let entry = entry?; debug_assert!(entry.path().starts_with(from)); - let rel_path = entry.path().strip_prefix(from).unwrap(); + let rel_path = entry.path().strip_prefix(from)?; let dest_path = to.join(rel_path); if entry.file_type().is_symlink() { let target = fs::read_link(entry.path())?; @@ -251,11 +251,12 @@ mod tests { #[test] fn create_file_with_parent_dirs() { - let tmp = tempfile::tempdir().unwrap(); + let tmp = tempfile::tempdir().expect("Unable to create temp dir"); assert!(!tmp.path().join("parent").exists()); { - let mut file = create_file(&tmp.path().join("parent/file.txt")).unwrap(); - write!(file, "Hello, world!\n").unwrap(); + let mut file = + create_file(&tmp.path().join("parent/file.txt")).expect("Failed to create file"); + write!(file, "Hello, world!\n").expect("unable to write file"); } assert!(tmp.path().join("parent").is_dir()); assert!(tmp.path().join("parent/file.txt").is_file()); @@ -268,42 +269,44 @@ mod tests { // sub/ // file.txt // link -> sub/file.txt - let tmp = tempfile::tempdir().unwrap(); + let tmp = tempfile::tempdir().expect("unable to create tempdir"); { - let mut file = create_file(&tmp.path().join("orig/sub/file.txt")).unwrap(); - write!(file, "Hello, world!\n").unwrap(); + let mut file = + create_file(&tmp.path().join("orig/sub/file.txt")).expect("Unable to create file"); + write!(file, "Hello, world!\n").expect("Unable to write to file"); } symlink_file( &PathBuf::from("sub/file.txt"), &tmp.path().join("orig/link"), ) - .unwrap(); + .expect("Failed to create symlink"); assert_eq!( std::fs::read(tmp.path().join("orig/link")) - .unwrap() + .expect("Failed to read file") .as_slice(), b"Hello, world!\n" ); // Copy ${TMP}/orig to ${TMP}/parent/copy, and make sure that the // directory structure, file, and symlink got copied correctly. - copy_dir(&tmp.path().join("orig"), &tmp.path().join("parent/copy")).unwrap(); + copy_dir(&tmp.path().join("orig"), &tmp.path().join("parent/copy")) + .expect("Failed to copy dir"); assert!(tmp.path().join("parent/copy").is_dir()); assert!(tmp.path().join("parent/copy/sub").is_dir()); assert!(tmp.path().join("parent/copy/sub/file.txt").is_file()); assert_eq!( std::fs::read(tmp.path().join("parent/copy/sub/file.txt")) - .unwrap() + .expect("Failed to read file") .as_slice(), b"Hello, world!\n" ); assert!(tmp.path().join("parent/copy/link").exists()); assert_eq!( - std::fs::read_link(tmp.path().join("parent/copy/link")).unwrap(), + std::fs::read_link(tmp.path().join("parent/copy/link")).expect("Failed to read from symlink"), PathBuf::from("sub/file.txt") ); assert_eq!( std::fs::read(tmp.path().join("parent/copy/link")) - .unwrap() + .expect("Failed to read from file") .as_slice(), b"Hello, world!\n" ); diff --git a/cli/tauri-cli/src/bundle/deb_bundle.rs b/cli/tauri-cli/src/bundle/deb_bundle.rs index 3181a194a..7f6625b15 100644 --- a/cli/tauri-cli/src/bundle/deb_bundle.rs +++ b/cli/tauri-cli/src/bundle/deb_bundle.rs @@ -189,7 +189,7 @@ fn generate_md5sums(control_dir: &Path, data_dir: &Path) -> crate::Result<()> { for byte in hash.compute().iter() { write!(md5sums_file, "{:02x}", byte)?; } - let rel_path = path.strip_prefix(data_dir).unwrap(); + let rel_path = path.strip_prefix(data_dir)?; let path_str = rel_path.to_str().ok_or_else(|| { let msg = format!("Non-UTF-8 path: {:?}", rel_path); io::Error::new(io::ErrorKind::InvalidData, msg) @@ -232,8 +232,8 @@ fn generate_icon_files(settings: &Settings, data_dir: &PathBuf) -> crate::Result continue; } let decoder = PNGDecoder::new(File::open(&icon_path)?)?; - let width = decoder.dimensions().0.try_into().unwrap(); - let height = decoder.dimensions().1.try_into().unwrap(); + let width = decoder.dimensions().0.try_into()?; + let height = decoder.dimensions().1.try_into()?; let is_high_density = common::is_retina(&icon_path); if !sizes.contains(&(width, height, is_high_density)) { sizes.insert((width, height, is_high_density)); @@ -303,7 +303,7 @@ fn create_tar_from_dir, W: Write>(src_dir: P, dest_file: W) -> cr if src_path == src_dir { continue; } - let dest_path = src_path.strip_prefix(&src_dir).unwrap(); + let dest_path = src_path.strip_prefix(&src_dir)?; if entry.file_type().is_dir() { tar_builder.append_dir(dest_path, src_path)?; } else { diff --git a/cli/tauri-cli/src/bundle/dmg_bundle.rs b/cli/tauri-cli/src/bundle/dmg_bundle.rs index f5b1f727d..593ce2a72 100644 --- a/cli/tauri-cli/src/bundle/dmg_bundle.rs +++ b/cli/tauri-cli/src/bundle/dmg_bundle.rs @@ -17,7 +17,7 @@ lazy_static! { handlebars .register_template_string("bundle_dmg", include_str!("templates/bundle_dmg")) - .unwrap(); + .expect("Failed to setup handlebars template"); handlebars }; } diff --git a/cli/tauri-cli/src/bundle/ios_bundle.rs b/cli/tauri-cli/src/bundle/ios_bundle.rs index 6b5eeabf2..85ee9fdd1 100644 --- a/cli/tauri-cli/src/bundle/ios_bundle.rs +++ b/cli/tauri-cli/src/bundle/ios_bundle.rs @@ -76,8 +76,8 @@ fn generate_icon_files(bundle_dir: &Path, settings: &Settings) -> crate::Result< continue; } let decoder = PNGDecoder::new(File::open(&icon_path)?)?; - let width = decoder.dimensions().0.try_into().unwrap(); - let height = decoder.dimensions().1.try_into().unwrap(); + let width = decoder.dimensions().0.try_into()?; + let height = decoder.dimensions().1.try_into()?; let is_retina = common::is_retina(&icon_path); if !sizes.contains(&(width, height, is_retina)) { sizes.insert((width, height, is_retina)); diff --git a/cli/tauri-cli/src/bundle/osx_bundle.rs b/cli/tauri-cli/src/bundle/osx_bundle.rs index ea671fb59..775a50651 100644 --- a/cli/tauri-cli/src/bundle/osx_bundle.rs +++ b/cli/tauri-cli/src/bundle/osx_bundle.rs @@ -115,7 +115,7 @@ fn create_info_plist( write!( file, " CFBundleIconFile\n {}\n", - path.file_name().unwrap().to_string_lossy() + path.file_name().expect("No file name").to_string_lossy() )?; } write!( @@ -201,7 +201,9 @@ fn copy_frameworks_to_bundle(bundle_directory: &Path, settings: &Settings) -> cr for framework in frameworks.iter() { if framework.ends_with(".framework") { let src_path = PathBuf::from(framework); - let src_name = src_path.file_name().unwrap(); + let src_name = src_path + .file_name() + .expect("Couldn't get framework filename"); common::copy_dir(&src_path, &dest_dir.join(&src_name))?; continue; } else if framework.contains("/") { @@ -245,7 +247,7 @@ fn create_icns_file( let icon_path = icon_path?; if icon_path.extension() == Some(OsStr::new("icns")) { let mut dest_path = resources_dir.to_path_buf(); - dest_path.push(icon_path.file_name().unwrap()); + dest_path.push(icon_path.file_name().expect("Could not get icon filename")); common::copy_file(&icon_path, &dest_path)?; return Ok(Some(dest_path)); } diff --git a/cli/tauri-cli/src/bundle/path_utils.rs b/cli/tauri-cli/src/bundle/path_utils.rs index ae6e4b5c5..428696254 100644 --- a/cli/tauri-cli/src/bundle/path_utils.rs +++ b/cli/tauri-cli/src/bundle/path_utils.rs @@ -224,7 +224,7 @@ where if item.is_none() { return Err("Invalid path".into()); } - let item = item.unwrap().to_string(); + let item = item.expect("Item had no data").to_string(); if path.as_ref().is_dir() { directories.push(item); diff --git a/cli/tauri-cli/src/bundle/settings.rs b/cli/tauri-cli/src/bundle/settings.rs index b1668817c..8642f763b 100644 --- a/cli/tauri-cli/src/bundle/settings.rs +++ b/cli/tauri-cli/src/bundle/settings.rs @@ -182,7 +182,7 @@ impl Settings { Some( matches .values_of("features") - .unwrap() + .expect("Couldn't get the features") .map(|s| s.to_string()) .collect(), ) @@ -284,7 +284,7 @@ impl Settings { if workspace_settings.members.is_some() && workspace_settings .members - .unwrap() + .expect("Couldn't get members") .iter() .any(|member| member.as_str() == project_name) { @@ -607,16 +607,19 @@ mod tests { [dependencies]\n\ rand = \"0.4\"\n"; let cargo_settings: CargoSettings = toml::from_str(toml_str).unwrap(); - let package = cargo_settings.package.unwrap(); + let package = cargo_settings.package.expect("Couldn't get package"); assert_eq!(package.name, "example"); assert_eq!(package.version, "0.1.0"); assert_eq!(package.description, "An example application."); assert_eq!(package.homepage, None); assert_eq!(package.authors, Some(vec!["Jane Doe".to_string()])); assert!(package.metadata.is_some()); - let metadata = package.metadata.as_ref().unwrap(); + let metadata = package + .metadata + .as_ref() + .expect("Failed to get metadata ref"); assert!(metadata.bundle.is_some()); - let bundle = metadata.bundle.as_ref().unwrap(); + let bundle = metadata.bundle.as_ref().expect("Failed to get bundle ref"); assert_eq!(bundle.name, Some("Example Application".to_string())); assert_eq!(bundle.identifier, Some("com.example.app".to_string())); assert_eq!(bundle.icon, None); @@ -661,26 +664,34 @@ mod tests { \n\ [[example]]\n\ name = \"baz\"\n"; - let cargo_settings: CargoSettings = toml::from_str(toml_str).unwrap(); + let cargo_settings: CargoSettings = toml::from_str(toml_str).expect("Failed to read from toml"); assert!(cargo_settings.package.is_some()); - let package = cargo_settings.package.as_ref().unwrap(); + let package = cargo_settings + .package + .as_ref() + .expect("Failed to get package ref"); assert!(package.metadata.is_some()); - let metadata = package.metadata.as_ref().unwrap(); + let metadata = package + .metadata + .as_ref() + .expect("Failed to get metadata ref"); assert!(metadata.bundle.is_some()); - let bundle = metadata.bundle.as_ref().unwrap(); + let bundle = metadata.bundle.as_ref().expect("Failed to get bundle ref"); assert!(bundle.example.is_some()); - let bins = bundle.bin.as_ref().unwrap(); + let bins = bundle.bin.as_ref().expect("Failed to get bin ref"); assert!(bins.contains_key("foo")); - let foo: &BundleSettings = bins.get("foo").unwrap(); + let foo: &BundleSettings = bins.get("foo").expect("Failed to get foo bundle settings"); assert_eq!(foo.name, Some("Foo App".to_string())); assert!(bins.contains_key("bar")); - let bar: &BundleSettings = bins.get("bar").unwrap(); + let bar: &BundleSettings = bins.get("bar").expect("Failed to get bar bundle settings"); assert_eq!(bar.name, Some("Bar App".to_string())); - let examples = bundle.example.as_ref().unwrap(); + let examples = bundle.example.as_ref().expect("Failed to get example ref"); assert!(examples.contains_key("baz")); - let baz: &BundleSettings = examples.get("baz").unwrap(); + let baz: &BundleSettings = examples + .get("baz") + .expect("Failed to get baz bundle settings"); assert_eq!(baz.name, Some("Baz Example".to_string())); } } diff --git a/cli/tauri-cli/src/bundle/wix.rs b/cli/tauri-cli/src/bundle/wix.rs index f77700308..8148a4175 100644 --- a/cli/tauri-cli/src/bundle/wix.rs +++ b/cli/tauri-cli/src/bundle/wix.rs @@ -47,7 +47,7 @@ lazy_static! { handlebars .register_template_string("main.wxs", include_str!("templates/main.wxs")) .or_else(|e| Err(e.to_string())) - .unwrap(); + .expect("Failed to setup handlebar template"); handlebars }; } @@ -133,7 +133,7 @@ fn extract_zip(data: &Vec, path: &Path) -> crate::Result<()> { for i in 0..zipa.len() { let mut file = zipa.by_index(i).or_else(|e| Err(e.to_string()))?; let dest_path = path.join(file.name()); - let parent = dest_path.parent().unwrap(); + let parent = dest_path.parent().expect("Failed to get parent"); if !parent.exists() { create_dir_all(parent).or_else(|e| Err(e.to_string()))?; @@ -143,7 +143,7 @@ fn extract_zip(data: &Vec, path: &Path) -> crate::Result<()> { file .read_to_end(&mut buff) .or_else(|e| Err(e.to_string()))?; - let mut fileout = File::create(dest_path).unwrap(); + let mut fileout = File::create(dest_path).expect("Failed to open file"); fileout.write_all(&buff).or_else(|e| Err(e.to_string()))?; } @@ -256,15 +256,15 @@ fn run_candle( .spawn() .expect("error running candle.exe"); { - let stdout = cmd.stdout.as_mut().unwrap(); + let stdout = cmd.stdout.as_mut().expect("Failed to get stdout handle"); let reader = BufReader::new(stdout); for line in reader.lines() { - common::print_info(line.unwrap().as_str())?; + common::print_info(line.expect("Failed to get line").as_str())?; } } - let status = cmd.wait().unwrap(); + let status = cmd.wait()?; if status.success() { Ok(()) } else { @@ -296,15 +296,15 @@ fn run_light( .spawn() .expect("error running light.exe"); { - let stdout = cmd.stdout.as_mut().unwrap(); + let stdout = cmd.stdout.as_mut().expect("Failed to get stdout handle"); let reader = BufReader::new(stdout); for line in reader.lines() { - common::print_info(line.unwrap().as_str())?; + common::print_info(line.expect("Failed to get line").as_str())?; } } - let status = cmd.wait().unwrap(); + let status = cmd.wait()?; if status.success() { Ok(output_path.to_path_buf()) } else { diff --git a/cli/tauri-cli/src/main.rs b/cli/tauri-cli/src/main.rs index 71f8586b3..b70f84b65 100644 --- a/cli/tauri-cli/src/main.rs +++ b/cli/tauri-cli/src/main.rs @@ -29,7 +29,7 @@ error_chain! { Walkdir(::walkdir::Error); HttpError(::attohttpc::Error) #[cfg(windows)]; StripError(std::path::StripPrefixError); - + ConvertError(std::num::TryFromIntError); } errors {} } @@ -153,6 +153,6 @@ fn run() -> crate::Result<()> { fn main() { if let Err(error) = run() { - bundle::print_error(&error).unwrap(); + bundle::print_error(&error).expect("Failed to call print error in main"); } } diff --git a/tauri-api/src/file/extract.rs b/tauri-api/src/file/extract.rs index 4a943ac92..1eeb65246 100644 --- a/tauri-api/src/file/extract.rs +++ b/tauri-api/src/file/extract.rs @@ -179,7 +179,11 @@ impl<'a> Extract<'a> { } ArchiveFormat::Zip => { let mut archive = zip::ZipArchive::new(source)?; - let mut file = archive.by_name(file_to_extract.to_str().unwrap())?; + let mut file = archive.by_name( + file_to_extract + .to_str() + .expect("Could not convert file to str"), + )?; let mut output = fs::File::create(into_dir.join(file.name()))?; io::copy(&mut file, &mut output)?; } diff --git a/tauri/src/app/runner.rs b/tauri/src/app/runner.rs index 3913e0dc6..14ca250ce 100644 --- a/tauri/src/app/runner.rs +++ b/tauri/src/app/runner.rs @@ -69,7 +69,7 @@ pub(crate) fn run(application: &mut crate::App) { Vec::new(), std::process::Stdio::inherit(), ) - .unwrap(); + .expect("Failed to spawn updater thread"); }); } @@ -95,13 +95,13 @@ pub(crate) fn run(application: &mut crate::App) { }) .content(content) .build() - .unwrap(); + .expect("Failed to build webview builder"); #[cfg(feature = "dev-server")] webview .handle() .dispatch(|_webview| _webview.eval(include_str!(concat!(env!("TAURI_DIR"), "/tauri.js")))) - .unwrap(); + .expect("Failed to grab webview handle"); #[cfg(feature = "embedded-server")] { @@ -124,10 +124,10 @@ pub(crate) fn run(application: &mut crate::App) { .to_string(); request .respond(crate::server::asset_response(&url)) - .unwrap(); + .expect("Failed to read asset type"); } }); } - webview.run().unwrap(); + webview.run().expect("Failed to run webview"); } diff --git a/tauri/src/endpoints.rs b/tauri/src/endpoints.rs index 159269b35..a81ecacf4 100644 --- a/tauri/src/endpoints.rs +++ b/tauri/src/endpoints.rs @@ -39,7 +39,7 @@ pub(crate) fn handle(webview: &mut WebView<'_, T>, arg: &str) -> boo fn = crate::event::emit_function_name(), listeners = crate::event::event_listeners_object_name(), queue = crate::event::event_queue_object_name() - )).unwrap(); + )).expect("Failed to call webview.eval from init"); } #[cfg(any(feature = "all-api", feature = "readTextFile"))] ReadTextFile { @@ -84,7 +84,7 @@ pub(crate) fn handle(webview: &mut WebView<'_, T>, arg: &str) -> boo } #[cfg(any(feature = "all-api", feature = "setTitle"))] SetTitle { title } => { - webview.set_title(&title).unwrap(); + webview.set_title(&title).expect("Failed to set title"); } #[cfg(any(feature = "all-api", feature = "execute"))] Execute { @@ -98,7 +98,7 @@ pub(crate) fn handle(webview: &mut WebView<'_, T>, arg: &str) -> boo #[cfg(any(feature = "all-api", feature = "open"))] Open { uri } => { crate::spawn(move || { - webbrowser::open(&uri).unwrap(); + webbrowser::open(&uri).expect("Failed to open webbrowser with uri"); }); } @@ -140,7 +140,7 @@ pub(crate) fn handle(webview: &mut WebView<'_, T>, arg: &str) -> boo handler = handler, once_flag = if once { "true" } else { "false" } )) - .unwrap(); + .expect("failed to call webview.eval from listen"); } #[cfg(any(feature = "all-api", feature = "answer"))] Emit { event, payload } => { @@ -178,13 +178,17 @@ pub(crate) fn handle(webview: &mut WebView<'_, T>, arg: &str) -> boo Ok(format!( "`data:image/{};base64,{}`", ext, - base64::encode(&read_asset.unwrap().into_owned()) + base64::encode(&read_asset.expect("Failed to read asset type").into_owned()) )) } else { handle .dispatch(move |_webview| { - _webview - .eval(&std::str::from_utf8(&read_asset.unwrap().into_owned()).unwrap()) + _webview.eval( + &std::str::from_utf8( + &read_asset.expect("Failed to read asset type").into_owned(), + ) + .expect("failed to convert asset bytes to u8 slice"), + ) }) .map_err(|err| format!("`{}`", err)) .map(|_| r#""Asset loaded successfully""#.to_string()) diff --git a/tauri/src/event.rs b/tauri/src/event.rs index ab3885e21..c636da993 100644 --- a/tauri/src/event.rs +++ b/tauri/src/event.rs @@ -29,7 +29,9 @@ pub fn event_queue_object_name() -> String { pub fn listen(id: &'static str, handler: F) { LISTENERS.with(|listeners| { - let mut l = listeners.lock().unwrap(); + let mut l = listeners + .lock() + .expect("Failed to lock listeners: listen()"); l.insert( id.to_string(), EventHandler { @@ -55,17 +57,19 @@ pub fn emit(webview_handle: &Handle, event: &'static str, mut pay salt )) }) - .unwrap(); + .expect("Failed to dispatch JS from emit"); } pub fn on_event(event: String, data: String) { LISTENERS.with(|listeners| { - let mut l = listeners.lock().unwrap(); + let mut l = listeners + .lock() + .expect("Failed to lock listeners: on_event()"); let key = event.clone(); if l.contains_key(&key) { - let handler = l.get_mut(&key).unwrap(); + let handler = l.get_mut(&key).expect("Failed to get mutable handler"); (handler.on_event)(data); } }); diff --git a/tauri/src/lib.rs b/tauri/src/lib.rs index 9255ef1df..69af053cd 100644 --- a/tauri/src/lib.rs +++ b/tauri/src/lib.rs @@ -5,8 +5,8 @@ extern crate serde_json; #[macro_use] extern crate lazy_static; -mod endpoints; pub mod config; +mod endpoints; pub mod event; #[cfg(feature = "embedded-server")] @@ -56,7 +56,7 @@ pub fn execute_promise Result + Send let callback_string = api::rpc::format_callback_result(task(), callback, error); handle .dispatch(move |_webview| _webview.eval(callback_string.as_str())) - .unwrap() + .expect("Failed to dispatch promise callback") }); }); } diff --git a/tauri/src/salt.rs b/tauri/src/salt.rs index 161603510..9eeda930d 100644 --- a/tauri/src/salt.rs +++ b/tauri/src/salt.rs @@ -13,24 +13,30 @@ lazy_static! { pub fn generate() -> String { let salt = Uuid::new_v4(); - SALTS.lock().unwrap().push(Salt { - value: salt.to_string(), - one_time: true, - }); + SALTS + .lock() + .expect("Failed to lock Salt mutex: generate()") + .push(Salt { + value: salt.to_string(), + one_time: true, + }); return salt.to_string(); } pub fn generate_static() -> String { let salt = Uuid::new_v4(); - SALTS.lock().unwrap().push(Salt { - value: salt.to_string(), - one_time: false, - }); + SALTS + .lock() + .expect("Failed to lock SALT mutex: generate_static()") + .push(Salt { + value: salt.to_string(), + one_time: false, + }); return salt.to_string(); } pub fn is_valid(salt: String) -> bool { - let mut salts = SALTS.lock().unwrap(); + let mut salts = SALTS.lock().expect("Failed to lock Salt mutex: is_valid()"); match salts.iter().position(|s| s.value == salt) { Some(index) => { if salts[index].one_time { @@ -54,5 +60,7 @@ pub fn validate( Err("'INVALID SALT'".to_string()) }; let callback_string = crate::api::rpc::format_callback_result(response, callback, error); - webview.eval(callback_string.as_str()).unwrap(); + webview + .eval(callback_string.as_str()) + .expect("Failed to eval JS from validate()"); } diff --git a/tauri/src/server.rs b/tauri/src/server.rs index 475d31f50..c5c0c6b34 100644 --- a/tauri/src/server.rs +++ b/tauri/src/server.rs @@ -3,21 +3,26 @@ use tiny_http::{Header, Response}; pub fn asset_response(path: &str) -> Response>> { let asset = crate::assets::ASSETS .get(&format!("{}{}", env!("TAURI_DIST_DIR"), path)) - .unwrap() + .expect("Could not get assets") .into_owned(); let mut response = Response::from_data(asset); let header; if path.ends_with(".svg") { - header = Header::from_bytes(&b"Content-Type"[..], &b"image/svg+xml"[..]).unwrap(); + header = Header::from_bytes(&b"Content-Type"[..], &b"image/svg+xml"[..]) + .expect("Could not add svg+xml header"); } else if path.ends_with(".css") { - header = Header::from_bytes(&b"Content-Type"[..], &b"text/css"[..]).unwrap(); + header = + Header::from_bytes(&b"Content-Type"[..], &b"text/css"[..]).expect("Could not add css header"); } else if path.ends_with(".html") { - header = Header::from_bytes(&b"Content-Type"[..], &b"text/html"[..]).unwrap(); + header = Header::from_bytes(&b"Content-Type"[..], &b"text/html"[..]) + .expect("Could not add html header"); } else if path.ends_with(".js") { - header = Header::from_bytes(&b"Content-Type"[..], &b"text/javascript"[..]).unwrap(); + header = Header::from_bytes(&b"Content-Type"[..], &b"text/javascript"[..]) + .expect("Could not add Javascript header"); } else { - header = Header::from_bytes(&b"Content-Type"[..], &b"application/octet-stream"[..]).unwrap(); + header = Header::from_bytes(&b"Content-Type"[..], &b"application/octet-stream"[..]) + .expect("Could not add octet-stream header"); } response.add_header(header);