summaryrefslogtreecommitdiff
path: root/rust
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-06-22 18:59:34 -0400
committerMason Reed <mason@vector35.com>2025-07-02 01:56:54 -0400
commitcada23947c77320a7055dcb547cb7a6ea34267df (patch)
treef20dd4ae3c2a0800adfbb1580e5ac2180c6be3b6 /rust
parent619376a90c644e264c7b2930593b6116b0ed25a2 (diff)
[Rust] Remove redundant `Result` from `Project::folders`
Also make `Project::file_by_path` take a `Path`.
Diffstat (limited to 'rust')
-rw-r--r--rust/src/project.rs12
-rw-r--r--rust/tests/project.rs12
2 files changed, 12 insertions, 12 deletions
diff --git a/rust/src/project.rs b/rust/src/project.rs
index b6295f6b..e3159efc 100644
--- a/rust/src/project.rs
+++ b/rust/src/project.rs
@@ -3,6 +3,7 @@ pub mod folder;
use std::ffi::c_void;
use std::fmt::Debug;
+use std::path::Path;
use std::ptr::{null_mut, NonNull};
use std::time::{Duration, SystemTime, UNIX_EPOCH};
@@ -240,14 +241,11 @@ impl Project {
}
/// Get a list of folders in the project
- pub fn folders(&self) -> Result<Array<ProjectFolder>, ()> {
+ pub fn folders(&self) -> Array<ProjectFolder> {
let mut count = 0;
let result = unsafe { BNProjectGetFolders(self.handle.as_ptr(), &mut count) };
- if result.is_null() {
- return Err(());
- }
-
- Ok(unsafe { Array::new(result, count, ()) })
+ assert!(!result.is_null());
+ unsafe { Array::new(result, count, ()) }
}
/// Retrieve a folder in the project by unique folder `id`
@@ -569,7 +567,7 @@ impl Project {
}
/// Retrieve a file in the project by the `path` on disk
- pub fn file_by_path(&self, path: &str) -> Option<Ref<ProjectFile>> {
+ pub fn file_by_path(&self, path: &Path) -> Option<Ref<ProjectFile>> {
let path_raw = path.to_cstr();
let result =
unsafe { BNProjectGetFileByPathOnDisk(self.handle.as_ptr(), path_raw.as_ptr()) };
diff --git a/rust/tests/project.rs b/rust/tests/project.rs
index 0b03e647..18676b2e 100644
--- a/rust/tests/project.rs
+++ b/rust/tests/project.rs
@@ -151,10 +151,10 @@ fn modify_project() {
.create_folder(None, "deleted_folder", folder_4_desc)
.unwrap();
- assert_eq!(project.folders().unwrap().len(), 5);
+ assert_eq!(project.folders().len(), 5);
let last_folder = project.folder_by_id(&folder_5.id()).unwrap();
project.delete_folder(&last_folder).unwrap();
- assert_eq!(project.folders().unwrap().len(), 4);
+ assert_eq!(project.folders().len(), 4);
drop(folder_5);
// create, import and delete file
@@ -246,7 +246,9 @@ fn modify_project() {
assert_eq!(project.files().len(), 10);
let file_a = project.file_by_id(&file_8.id()).unwrap();
- let file_b = project.file_by_path(&file_7.path_on_disk()).unwrap();
+ let file_b = project
+ .file_by_path(&file_7.path_on_disk().unwrap())
+ .unwrap();
project.delete_file(&file_a);
project.delete_file(&file_b);
assert_eq!(project.files().len(), 8);
@@ -282,7 +284,7 @@ fn modify_project() {
(&tmp_folder_1_name, None),
(&tmp_folder_2_name, None),
];
- for folder in project.folders().unwrap().iter() {
+ for folder in project.folders().iter() {
let found = folders
.iter()
.find(|f| folder.name().as_str() == f.0)
@@ -329,7 +331,7 @@ fn modify_project() {
.as_secs()
);
}
- let content = std::fs::read(file.path_on_disk().as_str()).unwrap();
+ let content = std::fs::read(file.path_on_disk().unwrap()).unwrap();
assert_eq!(content, found.1);
}